Annotation of embedaddon/php/ext/interbase/tests/006.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: InterBase: binding (may take a while)
        !             3: --SKIPIF--
        !             4: <?php include("skipif.inc"); ?>
        !             5: --FILE--
        !             6: <?php /* $Id: 006.phpt 316521 2011-09-12 09:56:45Z mariuz $ */
        !             7: 
        !             8:        require("interbase.inc");
        !             9:        
        !            10:        ibase_connect($test_base);
        !            11:        
        !            12:        ibase_query(
        !            13:                "create table test6 (
        !            14:                        iter            integer,
        !            15:                        v_char          char(1000),
        !            16:                        v_date      timestamp,
        !            17:                        v_decimal   decimal(12,3),
        !            18:                        v_double        double precision,
        !            19:                        v_float     float,
        !            20:                        v_integer   integer,
        !            21:                        v_numeric   numeric(4,2),
        !            22:                        v_smallint  smallint,
        !            23:                        v_varchar   varchar(10000)
        !            24:                        )");
        !            25:        ibase_query(
        !            26:                "create procedure add1 (arg integer)
        !            27:                returns (result integer)
        !            28:                as 
        !            29:                begin
        !            30:                        result = arg +1;
        !            31:                end");
        !            32:        ibase_commit();
        !            33: 
        !            34:        /* if timefmt not supported, hide error */
        !            35:        ini_set('ibase.timestampformat',"%m/%d/%Y %H:%M:%S");
        !            36: 
        !            37:        echo "insert\n";
        !            38: 
        !            39:        for($iter = 0; $iter < 3; $iter++) {
        !            40:                /* prepare data  */
        !            41:                $v_char = rand_str(1000);
        !            42:                $v_date = rand_datetime();
        !            43:                $v_decimal = rand_number(12,3);
        !            44:                $v_double  = rand_number(20);
        !            45:                $v_float   = rand_number(7);
        !            46:                $v_integer = rand_number(9,0);
        !            47:                $v_numeric = rand_number(4,2);
        !            48:                $v_smallint = rand_number(5) % 32767;
        !            49:                $v_varchar = rand_str(10000);
        !            50: 
        !            51:                ibase_query("insert into test6
        !            52:                        (iter,v_char,v_date,v_decimal,v_double,v_float,
        !            53:                        v_integer,v_numeric,v_smallint,v_varchar)
        !            54:                        values (?,?,?,?,?,?,?,?,?,?)",
        !            55:                        $iter, $v_char, $v_date, $v_decimal, $v_double, $v_float,
        !            56:                        $v_integer, $v_numeric, $v_smallint, $v_varchar);
        !            57:                $sel = ibase_query("select * from test6 where iter = ?", $iter);
        !            58: 
        !            59:                $row = ibase_fetch_object($sel);
        !            60:                if(substr($row->V_CHAR,0,strlen($v_char)) != $v_char) {
        !            61:                        echo " CHAR fail:\n";
        !            62:                        echo " in:  $v_char\n";
        !            63:                        echo " out: $row->V_CHAR\n";
        !            64:                }
        !            65:                if($row->V_DATE != $v_date) {
        !            66:                        echo " DATE fail\n";
        !            67:                        echo " in:  $v_date\n";
        !            68:                        echo " out: $row->V_DATE\n";
        !            69:                }
        !            70:                if($row->V_DECIMAL != $v_decimal) {
        !            71:                        echo " DECIMAL fail\n";
        !            72:                        echo " in:  $v_decimal\n";
        !            73:                        echo " out: $row->V_DECIMAL\n";
        !            74:                }
        !            75:                if(abs($row->V_DOUBLE - $v_double) > abs($v_double / 1E15)) {
        !            76:                        echo " DOUBLE fail\n";
        !            77:                        echo " in:  $v_double\n";
        !            78:                        echo " out: $row->V_DOUBLE\n";
        !            79:                }
        !            80:                if(abs($row->V_FLOAT - $v_float) > abs($v_float / 1E7)) {
        !            81:                        echo " FLOAT fail\n";
        !            82:                        echo " in:  $v_float\n";
        !            83:                        echo " out: $row->V_FLOAT\n";
        !            84:                }
        !            85:                if($row->V_INTEGER != $v_integer) {
        !            86:                        echo " INTEGER fail\n";
        !            87:                        echo " in:  $v_integer\n";
        !            88:                        echo " out: $row->V_INTEGER\n";
        !            89:                }
        !            90:                if ($row->V_NUMERIC != $v_numeric) {
        !            91:                        echo " NUMERIC fail\n";
        !            92:                        echo " in:  $v_numeric\n";
        !            93:                        echo " out: $row->V_NUMERIC\n";
        !            94:                }
        !            95:                if ($row->V_SMALLINT != $v_smallint) {
        !            96:                        echo " SMALLINT fail\n";
        !            97:                        echo " in:  $v_smallint\n";
        !            98:                        echo " out: $row->V_SMALLINT\n";
        !            99:                }
        !           100:                if ($row->V_VARCHAR != $v_varchar) {
        !           101:                        echo " VARCHAR fail:\n";
        !           102:                        echo " in:  $v_varchar\n";
        !           103:                        echo " out: $row->V_VARCHAR\n";
        !           104:                }
        !           105:                ibase_free_result($sel);
        !           106:        }/* for($iter)*/
        !           107: 
        !           108:        echo "select\n";
        !           109:        for($iter = 0; $iter < 3; $iter++) {
        !           110:                /* prepare data  */
        !           111:                $v_char = rand_str(1000);
        !           112:                $v_date = (int)rand_number(10,0,0);
        !           113:                $v_decimal = rand_number(12,3);
        !           114:                $v_double  = rand_number(20);
        !           115:                $v_float   = rand_number(7);
        !           116:                $v_integer = rand_number(9,0);
        !           117:                $v_numeric = rand_number(4,2);
        !           118:                $v_smallint = rand_number(5) % 32767;
        !           119:                $v_varchar = rand_str(10000);
        !           120: 
        !           121:                /* clear table*/
        !           122:                ibase_query("delete from test6");
        !           123: 
        !           124:                /* make one record */
        !           125:                ibase_query("insert into test6
        !           126:                        (iter, v_char,v_date,v_decimal,
        !           127:                        v_integer,v_numeric,v_smallint,v_varchar)
        !           128:                        values (666, '$v_char',?,$v_decimal, $v_integer,
        !           129:                        $v_numeric, $v_smallint, '$v_varchar')",$v_date);
        !           130: 
        !           131:                /* test all types */
        !           132:                if(!($sel = ibase_query(
        !           133:                        "select iter from test6 where v_char = ?", $v_char)) ||
        !           134:                        !ibase_fetch_row($sel)) {
        !           135:                        echo "CHAR fail\n";
        !           136:                }
        !           137:                ibase_free_result($sel);
        !           138:                if(!($sel = ibase_query(
        !           139:                        "select iter from test6 where v_date = ?", $v_date)) ||
        !           140:                        !ibase_fetch_row($sel)) {
        !           141:                        echo "DATE fail\n";
        !           142:                }
        !           143:                ibase_free_result($sel);
        !           144:                if(!($sel = ibase_query(
        !           145:                        "select iter from test6 where v_decimal = ?", $v_decimal)) ||
        !           146:                        !ibase_fetch_row($sel)) {
        !           147:                        echo "DECIMAL fail\n";
        !           148:                }
        !           149:                ibase_free_result($sel);
        !           150:                if(!($sel = ibase_query(
        !           151:                        "select iter from test6 where v_integer = ?", $v_integer)) ||
        !           152:                        !ibase_fetch_row($sel)) {
        !           153:                        echo "INTEGER fail\n";
        !           154:                }
        !           155:                ibase_free_result($sel);
        !           156:                if(!($sel = ibase_query(
        !           157:                        "select iter from test6 where v_numeric = ?", $v_numeric)) ||
        !           158:                        !ibase_fetch_row($sel)) {
        !           159:                        echo "NUMERIC fail\n";
        !           160:                }
        !           161:                ibase_free_result($sel);
        !           162:                if(!($sel = ibase_query(
        !           163:                        "select iter from test6 where v_smallint = ?", $v_smallint)) ||
        !           164:                        !ibase_fetch_row($sel)) {
        !           165:                        echo "SMALLINT fail\n";
        !           166:                }
        !           167:                ibase_free_result($sel);
        !           168:                if(!($sel = ibase_query(
        !           169:                        "select iter from test6 where v_varchar = ?", $v_varchar)) ||
        !           170:                        !ibase_fetch_row($sel)) {
        !           171:                        echo "VARCHAR fail\n";
        !           172:                }
        !           173:                ibase_free_result($sel);
        !           174:         
        !           175:        } /*for iter*/
        !           176: 
        !           177:        echo "prepare and exec insert\n";
        !           178: 
        !           179:     /* prepare table */
        !           180:        ibase_query("delete from test6");
        !           181: 
        !           182:        /* prepare query */
        !           183:        $query = ibase_prepare(
        !           184:                "insert into test6 (v_integer) values (?)");
        !           185: 
        !           186:        for($i = 0; $i < 10; $i++) {
        !           187:                ibase_execute($query, $i);
        !           188:        }
        !           189: 
        !           190:        out_table("test6");
        !           191: 
        !           192:        ibase_free_query($query);
        !           193: 
        !           194:        echo "prepare and exec select\n";
        !           195: 
        !           196:        /* prepare query */
        !           197:        $query = ibase_prepare("select * from test6
        !           198:                where v_integer between ? and ?");
        !           199: 
        !           200:        $low_border = 2;
        !           201:        $high_border = 6;
        !           202: 
        !           203:        $res = ibase_execute($query, $low_border, $high_border);
        !           204:        out_result($res, "test6");
        !           205:        ibase_free_result($res);
        !           206: 
        !           207:        $low_border = 0;
        !           208:        $high_border = 4;
        !           209:        $res = ibase_execute($query, $low_border, $high_border);
        !           210:        out_result($res, "test6");
        !           211:        ibase_free_result($res);
        !           212: 
        !           213:        $res = ibase_execute($query, "5", 7.499);
        !           214:        out_result($res, "test6");
        !           215:        ibase_free_result($res);
        !           216: 
        !           217:        ibase_free_query($query);
        !           218: 
        !           219:        /* test execute procedure */
        !           220:        $query = ibase_prepare("execute procedure add1(?)");
        !           221:        $res = array();
        !           222:        for ($i = 0; $i < 10; $i++) {
        !           223:                $res[] = ibase_execute($query,$i);
        !           224:        }
        !           225:        ibase_free_query($query);
        !           226:        foreach ($res as $r) {
        !           227:                out_result($r, "proc add1");
        !           228:                ibase_free_result($r);
        !           229:        }
        !           230: 
        !           231:        ibase_close();
        !           232:        echo "end of test\n";
        !           233: ?>
        !           234: --EXPECT--
        !           235: insert
        !           236: select
        !           237: prepare and exec insert
        !           238: --- test6 ---
        !           239:                                                0                               
        !           240:                                                1                               
        !           241:                                                2                               
        !           242:                                                3                               
        !           243:                                                4                               
        !           244:                                                5                               
        !           245:                                                6                               
        !           246:                                                7                               
        !           247:                                                8                               
        !           248:                                                9                               
        !           249: ---
        !           250: prepare and exec select
        !           251: --- test6 ---
        !           252:                                                2                               
        !           253:                                                3                               
        !           254:                                                4                               
        !           255:                                                5                               
        !           256:                                                6                               
        !           257: ---
        !           258: --- test6 ---
        !           259:                                                0                               
        !           260:                                                1                               
        !           261:                                                2                               
        !           262:                                                3                               
        !           263:                                                4                               
        !           264: ---
        !           265: --- test6 ---
        !           266:                                                5                               
        !           267:                                                6                               
        !           268:                                                7                               
        !           269: ---
        !           270: --- proc add1 ---
        !           271: 1      
        !           272: ---
        !           273: --- proc add1 ---
        !           274: 2      
        !           275: ---
        !           276: --- proc add1 ---
        !           277: 3      
        !           278: ---
        !           279: --- proc add1 ---
        !           280: 4      
        !           281: ---
        !           282: --- proc add1 ---
        !           283: 5      
        !           284: ---
        !           285: --- proc add1 ---
        !           286: 6      
        !           287: ---
        !           288: --- proc add1 ---
        !           289: 7      
        !           290: ---
        !           291: --- proc add1 ---
        !           292: 8      
        !           293: ---
        !           294: --- proc add1 ---
        !           295: 9      
        !           296: ---
        !           297: --- proc add1 ---
        !           298: 10     
        !           299: ---
        !           300: end of test
        !           301: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>