mirror of
https://github.com/php/php-src.git
synced 2024-11-24 18:34:21 +08:00
add test for bug #47803
This commit is contained in:
parent
ff115e285a
commit
90ad6e3c6c
185
ext/odbc/tests/bug47803.phpt
Normal file
185
ext/odbc/tests/bug47803.phpt
Normal file
@ -0,0 +1,185 @@
|
||||
--TEST--
|
||||
Bug #47803 Executing prepared statements is succesfull only for the first two statements
|
||||
--SKIPIF--
|
||||
<?php include 'skipif.inc'; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
include dirname(__FILE__) . "/config.inc";
|
||||
|
||||
$create_table = "CREATE TABLE FOO(
|
||||
[PAR_ID] [int] NOT NULL,
|
||||
[PAR_INT] [int] NULL,
|
||||
[PAR_CHR] [varchar](500) NULL
|
||||
)";
|
||||
|
||||
$inserts = "INSERT INTO FOO
|
||||
([PAR_ID]
|
||||
,[PAR_INT]
|
||||
,[PAR_CHR])
|
||||
VALUES
|
||||
(1,14,''),
|
||||
(2,30,''),
|
||||
(3,7,''),
|
||||
(4,7,''),
|
||||
(5,0,''),
|
||||
(6,0,''),
|
||||
(7,20130901,''),
|
||||
(8,20140201,''),
|
||||
(9,20140201,''),
|
||||
(10,20140620,''),
|
||||
(11,221,'')";
|
||||
|
||||
|
||||
date_default_timezone_set('Europe/Warsaw');
|
||||
|
||||
$link = odbc_connect($dsn, $user, $pass);
|
||||
|
||||
odbc_exec($link, 'CREATE DATABASE odbcTEST');
|
||||
odbc_exec($link, $create_table);
|
||||
odbc_exec($link, $inserts);
|
||||
|
||||
$upd_params = array(
|
||||
array('id'=>1, 'name'=>'test 1'),
|
||||
array('id'=>2, 'name'=>'test 2'),
|
||||
array('id'=>3, 'name'=>'test 3'),
|
||||
array('id'=>4, 'name'=>'test 4'),
|
||||
array('id'=>5, 'name'=>'test 5'),
|
||||
array('id'=>10, 'name'=>'test 10'),
|
||||
array('id'=>9, 'name'=>'test 9'),
|
||||
array('id'=>8, 'name'=>'test 8'),
|
||||
array('id'=>7, 'name'=>'test 7'),
|
||||
array('id'=>6, 'name'=>'test 6'),
|
||||
);
|
||||
$sql = "UPDATE FOO
|
||||
SET [PAR_CHR] = ?
|
||||
WHERE [PAR_ID] = ?";
|
||||
$result = odbc_prepare($link, $sql);
|
||||
if (!$result) {
|
||||
print ('[sql] prep: '.$sql);
|
||||
goto out;
|
||||
}
|
||||
foreach ($upd_params as &$k) {
|
||||
if(!odbc_execute($result, array($k['name'], $k['id']))) {
|
||||
print ('[sql] exec: '."array({$k['name']}, {$k['id']})");
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
odbc_free_result($result);
|
||||
|
||||
$sql = "SELECT * FROM FOO WHERE [PAR_ID] = ?";
|
||||
$result = odbc_prepare($link, $sql);
|
||||
if (!$result) {
|
||||
print ('[sql] prep: '.$sql);
|
||||
goto out;
|
||||
}
|
||||
foreach ($upd_params as $k) {
|
||||
if(!odbc_execute($result, array($k['id']))) {
|
||||
print ('[sql] exec: '."array({$k['id']})");
|
||||
goto out;
|
||||
}
|
||||
while (($r = odbc_fetch_array($result)) !== false) {
|
||||
var_dump($r);
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
if ($result) odbc_free_result($result);
|
||||
odbc_close($link);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "1"
|
||||
["PAR_INT"]=>
|
||||
string(2) "14"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 1"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "2"
|
||||
["PAR_INT"]=>
|
||||
string(2) "30"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 2"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "3"
|
||||
["PAR_INT"]=>
|
||||
string(1) "7"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 3"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "4"
|
||||
["PAR_INT"]=>
|
||||
string(1) "7"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 4"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "5"
|
||||
["PAR_INT"]=>
|
||||
string(1) "0"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 5"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(2) "10"
|
||||
["PAR_INT"]=>
|
||||
string(8) "20140620"
|
||||
["PAR_CHR"]=>
|
||||
string(7) "test 10"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "9"
|
||||
["PAR_INT"]=>
|
||||
string(8) "20140201"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 9"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "8"
|
||||
["PAR_INT"]=>
|
||||
string(8) "20140201"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 8"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "7"
|
||||
["PAR_INT"]=>
|
||||
string(8) "20130901"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 7"
|
||||
}
|
||||
array(3) {
|
||||
["PAR_ID"]=>
|
||||
string(1) "7"
|
||||
["PAR_INT"]=>
|
||||
string(8) "20130901"
|
||||
["PAR_CHR"]=>
|
||||
string(6) "test 7"
|
||||
}
|
||||
==DONE==
|
||||
--CLEAN--
|
||||
<?php
|
||||
include 'config.inc';
|
||||
|
||||
$conn = odbc_connect($dsn, $user, $pass);
|
||||
|
||||
odbc_exec($conn, 'DROP TABLE FOO');
|
||||
odbc_exec($conn, 'DROP DATABASE odbcTEST');
|
||||
|
||||
odbc_close($conn);
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user