diff options
author | Marcus Boerger <helly@php.net> | 2005-07-22 14:27:35 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2005-07-22 14:27:35 +0000 |
commit | e4b07b3ebea24f271942d2792001928144223a88 (patch) | |
tree | 6fde7ca3c2bdec162c9343d27ff867c2ef17b519 /ext/pdo/tests | |
parent | 99cb1b8004c9f642761abe980e5df3f3682d143f (diff) | |
download | php-git-e4b07b3ebea24f271942d2792001928144223a88.tar.gz |
- Test the colon is optional in binding
Diffstat (limited to 'ext/pdo/tests')
-rwxr-xr-x | ext/pdo/tests/pdo_016a.phpt | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/ext/pdo/tests/pdo_016a.phpt b/ext/pdo/tests/pdo_016a.phpt new file mode 100755 index 0000000000..34d626aed8 --- /dev/null +++ b/ext/pdo/tests/pdo_016a.phpt @@ -0,0 +1,198 @@ +--TEST-- +PDO Common: PDO_FETCH_BOUND w/o : +--SKIPIF-- +<?php # vim:ft=php +if (!extension_loaded('pdo')) die('skip'); +$dir = getenv('REDIR_TEST_DIR'); +if (false == $dir) die('skip no driver'); +require_once $dir . 'pdo_test.inc'; +PDOTest::skip(); +?> +--FILE-- +<?php +require getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; +$db = PDOTest::factory(); + +$db->exec('CREATE TABLE test(idx int NOT NULL PRIMARY KEY, txt VARCHAR(20))'); +$db->exec('INSERT INTO test VALUES(0, \'String0\')'); +$db->exec('INSERT INTO test VALUES(1, \'String1\')'); +$db->exec('INSERT INTO test VALUES(2, \'String2\')'); + +$stmt1 = $db->prepare('SELECT COUNT(idx) FROM test'); +$stmt2 = $db->prepare('SELECT idx, txt FROM test ORDER by idx'); + +$stmt1->execute(); +var_dump($stmt1->fetchColumn()); +$stmt1 = null; + +$stmt2->execute(); +$cont = $stmt2->fetchAll(PDO_FETCH_COLUMN|PDO_FETCH_UNIQUE); +var_dump($cont); + +echo "===WHILE===\n"; + +$stmt2->bindColumn('idx', $idx); +$stmt2->bindColumn('txt', $txt); +$stmt2->execute(); + +while($stmt2->fetch(PDO_FETCH_BOUND)) { + var_dump(array($idx=>$txt)); +} + +echo "===ALONE===\n"; + +$stmt3 = $db->prepare('SELECT txt FROM test WHERE idx=:inp'); +$stmt3->bindParam('inp', $idx); /* by foreign name */ + +$stmt4 = $db->prepare('SELECT idx FROM test WHERE txt=:txt'); +$stmt4->bindParam('txt', $txt); /* using same name */ + +foreach($cont as $idx => $txt) +{ + var_dump(array($idx=>$txt)); + var_dump($stmt3->execute()); + + if ($idx == 0) { + /* portability-wise, you may only bindColumn()s + * after execute() has been called at least once */ + $stmt3->bindColumn('txt', $col1); + } + var_dump($stmt3->fetch(PDO_FETCH_BOUND)); + $stmt3->closeCursor(); + + var_dump($stmt4->execute()); + if ($idx == 0) { + /* portability-wise, you may only bindColumn()s + * after execute() has been called at least once */ + $stmt4->bindColumn('idx', $col2); + } + var_dump($stmt4->fetch(PDO_FETCH_BOUND)); + $stmt4->closeCursor(); + var_dump(array($col2=>$col1)); +} + +echo "===REBIND/SAME===\n"; + +$stmt4->bindColumn('idx', $col1); + +foreach($cont as $idx => $txt) +{ + var_dump(array($idx=>$txt)); + var_dump($stmt3->execute()); + var_dump($stmt3->fetch(PDO_FETCH_BOUND)); + $stmt3->closeCursor(); + var_dump($col1); + var_dump($stmt4->execute()); + var_dump($stmt4->fetch(PDO_FETCH_BOUND)); + $stmt4->closeCursor(); + var_dump($col1); +} + +echo "===REBIND/CONFLICT===\n"; + +$stmt2->bindColumn('idx', $col1); +$stmt2->bindColumn('txt', $col1); +$stmt2->execute(); + +while($stmt2->fetch(PDO_FETCH_BOUND)) +{ + var_dump($col1); +} + + +?> +--EXPECT-- +string(1) "3" +array(3) { + [0]=> + string(7) "String0" + [1]=> + string(7) "String1" + [2]=> + string(7) "String2" +} +===WHILE=== +array(1) { + [0]=> + string(7) "String0" +} +array(1) { + [1]=> + string(7) "String1" +} +array(1) { + [2]=> + string(7) "String2" +} +===ALONE=== +array(1) { + [0]=> + string(7) "String0" +} +bool(true) +bool(true) +bool(true) +bool(true) +array(1) { + [0]=> + string(7) "String0" +} +array(1) { + [1]=> + string(7) "String1" +} +bool(true) +bool(true) +bool(true) +bool(true) +array(1) { + [1]=> + string(7) "String1" +} +array(1) { + [2]=> + string(7) "String2" +} +bool(true) +bool(true) +bool(true) +bool(true) +array(1) { + [2]=> + string(7) "String2" +} +===REBIND/SAME=== +array(1) { + [0]=> + string(7) "String0" +} +bool(true) +bool(true) +string(7) "String0" +bool(true) +bool(true) +string(1) "0" +array(1) { + [1]=> + string(7) "String1" +} +bool(true) +bool(true) +string(7) "String1" +bool(true) +bool(true) +string(1) "1" +array(1) { + [2]=> + string(7) "String2" +} +bool(true) +bool(true) +string(7) "String2" +bool(true) +bool(true) +string(1) "2" +===REBIND/CONFLICT=== +string(7) "String0" +string(7) "String1" +string(7) "String2" |