mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
PDO: Clean-up tests so it's easier to see if they use default test table (#12552)
This commit is contained in:
parent
4c6dbe0dd0
commit
c1fec9bbc3
@ -18,11 +18,10 @@ $db = PDOTest::factory();
|
||||
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
||||
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
|
||||
|
||||
$from = '';
|
||||
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'oci') {
|
||||
$from = 'from dual';
|
||||
} else if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'firebird') {
|
||||
$from = 'FROM RDB$DATABASE';
|
||||
switch ($db->getAttribute(PDO::ATTR_DRIVER_NAME)) {
|
||||
case 'oci': $from = ' FROM DUAL'; break;
|
||||
case 'firebird': $from = ' FROM RDB$DATABASE'; break;
|
||||
default: $from = ''; break;
|
||||
}
|
||||
|
||||
var_dump($db->query("select 0 as abc, 1 as xyz, 2 as def $from")->fetchAll(PDO::FETCH_GROUP));
|
||||
|
@ -11,7 +11,7 @@ PDOTest::skip();
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
class test extends PDO{
|
||||
class TestClass extends PDO{
|
||||
function __call($name, array $args) {
|
||||
echo "Called $name in ".__CLASS__."\n";
|
||||
}
|
||||
@ -23,10 +23,10 @@ class test extends PDO{
|
||||
if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/');
|
||||
require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
|
||||
|
||||
$a = PDOTest::factory(test::class);
|
||||
$a = PDOTest::factory(TestClass::class);
|
||||
$a->foo();
|
||||
$a->bar();
|
||||
?>
|
||||
--EXPECT--
|
||||
Called foo in test
|
||||
Called bar in test
|
||||
Called foo in TestClass
|
||||
Called bar in TestClass
|
||||
|
@ -27,12 +27,19 @@ $db = PDOTest::factory();
|
||||
|
||||
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'oci') {
|
||||
switch ($db->getAttribute(PDO::ATTR_DRIVER_NAME)) {
|
||||
case 'oci':
|
||||
$from = 'FROM DUAL';
|
||||
$ob = '1';
|
||||
} else {
|
||||
break;
|
||||
case 'firebird':
|
||||
$from = 'FROM RDB$DATABASE';
|
||||
$ob = 'r';
|
||||
break;
|
||||
default:
|
||||
$from = '';
|
||||
$ob = 'r';
|
||||
break;
|
||||
}
|
||||
|
||||
$query = "SELECT 'row1' AS r $from UNION SELECT 'row2' $from UNION SELECT 'row3' $from UNION SELECT 'row4' $from ORDER BY $ob";
|
||||
|
@ -15,8 +15,8 @@ if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../
|
||||
require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
|
||||
$db = PDOTest::factory();
|
||||
switch ($db->getAttribute(PDO::ATTR_DRIVER_NAME)) {
|
||||
case 'oci': $from = 'from dual'; break;
|
||||
case 'firebird': $from = 'from rdb$database'; break;
|
||||
case 'oci': $from = ' FROM DUAL'; break;
|
||||
case 'firebird': $from = ' FROM RDB$DATABASE'; break;
|
||||
default: $from = ''; break;
|
||||
}
|
||||
$statement = $db->prepare("SELECT NULL AS null_value, 0 AS zero, 1 AS one $from");
|
||||
|
@ -28,13 +28,11 @@ SELECT '
|
||||
SQL;
|
||||
|
||||
switch ($db->getAttribute(PDO::ATTR_DRIVER_NAME)) {
|
||||
case 'oci':
|
||||
$query .= ' FROM DUAL';
|
||||
break;
|
||||
case 'firebird':
|
||||
$query .= ' FROM RDB$DATABASE';
|
||||
break;
|
||||
case 'oci': $from = ' FROM DUAL'; break;
|
||||
case 'firebird': $from = ' FROM RDB$DATABASE'; break;
|
||||
default: $from = ''; break;
|
||||
}
|
||||
$query .= $from;
|
||||
|
||||
$stmt = $db->query($query);
|
||||
var_dump($stmt->debugDumpParams());
|
||||
|
@ -16,7 +16,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
|
||||
|
||||
putenv("PDOTEST_ATTR=" . serialize(array(PDO::ATTR_PERSISTENT => true)));
|
||||
|
||||
function test() {
|
||||
function callback() {
|
||||
$db = PDOTest::factory('PDO', false);
|
||||
$stmt = @$db->query("SELECT 1 FROM TABLE_DOES_NOT_EXIST");
|
||||
if ($stmt === false) {
|
||||
@ -24,8 +24,8 @@ function test() {
|
||||
}
|
||||
}
|
||||
|
||||
test();
|
||||
test();
|
||||
callback();
|
||||
callback();
|
||||
echo "Done";
|
||||
?>
|
||||
--EXPECT--
|
||||
|
@ -52,7 +52,7 @@ class Test1
|
||||
}
|
||||
}
|
||||
|
||||
function test($id,$val='N/A')
|
||||
function callback($id,$val='N/A')
|
||||
{
|
||||
echo __METHOD__ . "($id,$val)\n";
|
||||
return array($id=>$val);
|
||||
@ -61,10 +61,10 @@ function test($id,$val='N/A')
|
||||
$f = new Test1(0,0);
|
||||
|
||||
$select1->execute();
|
||||
var_dump($select1->fetchAll(PDO::FETCH_FUNC|PDO::FETCH_GROUP, 'test'));
|
||||
var_dump($select1->fetchAll(PDO::FETCH_FUNC|PDO::FETCH_GROUP, 'callback'));
|
||||
|
||||
$select2->execute();
|
||||
var_dump($select2->fetchAll(PDO::FETCH_FUNC, 'test'));
|
||||
var_dump($select2->fetchAll(PDO::FETCH_FUNC, 'callback'));
|
||||
|
||||
$select2->execute();
|
||||
var_dump($select2->fetchAll(PDO::FETCH_FUNC, array('Test1','factory')));
|
||||
@ -90,10 +90,10 @@ PDOTest::dropTableIfExists($db, "test011");
|
||||
--EXPECTF--
|
||||
DerivedStatement::__construct(Overloaded)
|
||||
Test1::__construct(0,0)
|
||||
test(1,N/A)
|
||||
test(2,N/A)
|
||||
test(3,N/A)
|
||||
test(4,N/A)
|
||||
callback(1,N/A)
|
||||
callback(2,N/A)
|
||||
callback(3,N/A)
|
||||
callback(4,N/A)
|
||||
array(2) {
|
||||
["Group1"]=>
|
||||
array(2) {
|
||||
@ -122,10 +122,10 @@ array(2) {
|
||||
}
|
||||
}
|
||||
}
|
||||
test(1,A)
|
||||
test(2,B)
|
||||
test(3,C)
|
||||
test(4,D)
|
||||
callback(1,A)
|
||||
callback(2,B)
|
||||
callback(3,C)
|
||||
callback(4,D)
|
||||
array(4) {
|
||||
[0]=>
|
||||
array(1) {
|
||||
|
@ -24,7 +24,7 @@ $SELECT = 'SELECT val, grp FROM test012';
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_NUM);
|
||||
var_dump($stmt->fetchAll());
|
||||
|
||||
class Test
|
||||
class TestClass
|
||||
{
|
||||
public $val;
|
||||
public $grp;
|
||||
@ -37,13 +37,13 @@ class Test
|
||||
|
||||
unset($stmt);
|
||||
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_CLASS, 'Test');
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_CLASS, TestClass::class);
|
||||
var_dump($stmt->fetchAll());
|
||||
|
||||
unset($stmt);
|
||||
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_NUM);
|
||||
$stmt->setFetchMode(PDO::FETCH_CLASS, 'Test', array('Changed'));
|
||||
$stmt->setFetchMode(PDO::FETCH_CLASS, TestClass::class, array('Changed'));
|
||||
var_dump($stmt->fetchAll());
|
||||
|
||||
?>
|
||||
@ -70,36 +70,36 @@ array(2) {
|
||||
string(6) "Group2"
|
||||
}
|
||||
}
|
||||
Test::__construct(N/A)
|
||||
Test::__construct(N/A)
|
||||
TestClass::__construct(N/A)
|
||||
TestClass::__construct(N/A)
|
||||
array(2) {
|
||||
[0]=>
|
||||
object(Test)#%d (2) {
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "A"
|
||||
["grp"]=>
|
||||
string(6) "Group1"
|
||||
}
|
||||
[1]=>
|
||||
object(Test)#%d (2) {
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "B"
|
||||
["grp"]=>
|
||||
string(6) "Group2"
|
||||
}
|
||||
}
|
||||
Test::__construct(Changed)
|
||||
Test::__construct(Changed)
|
||||
TestClass::__construct(Changed)
|
||||
TestClass::__construct(Changed)
|
||||
array(2) {
|
||||
[0]=>
|
||||
object(Test)#%d (2) {
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "A"
|
||||
["grp"]=>
|
||||
string(6) "Group1"
|
||||
}
|
||||
[1]=>
|
||||
object(Test)#%d (2) {
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "B"
|
||||
["grp"]=>
|
||||
|
@ -30,7 +30,7 @@ foreach ($stmt as $data)
|
||||
var_dump($data);
|
||||
}
|
||||
|
||||
class Test
|
||||
class TestClass
|
||||
{
|
||||
public $val;
|
||||
public $grp;
|
||||
@ -43,14 +43,14 @@ class Test
|
||||
|
||||
unset($stmt);
|
||||
|
||||
foreach ($db->query($SELECT, PDO::FETCH_CLASS, 'Test') as $data)
|
||||
foreach ($db->query($SELECT, PDO::FETCH_CLASS, TestClass::class) as $data)
|
||||
{
|
||||
var_dump($data);
|
||||
}
|
||||
|
||||
unset($stmt);
|
||||
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_CLASS, 'Test', array('WOW'));
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_CLASS, TestClass::class, array('WOW'));
|
||||
|
||||
foreach($stmt as $data)
|
||||
{
|
||||
@ -76,29 +76,29 @@ array(2) {
|
||||
[1]=>
|
||||
string(6) "Group2"
|
||||
}
|
||||
Test::__construct(N/A)
|
||||
object(Test)#%d (2) {
|
||||
TestClass::__construct(N/A)
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "A"
|
||||
["grp"]=>
|
||||
string(6) "Group1"
|
||||
}
|
||||
Test::__construct(N/A)
|
||||
object(Test)#%d (2) {
|
||||
TestClass::__construct(N/A)
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "B"
|
||||
["grp"]=>
|
||||
string(6) "Group2"
|
||||
}
|
||||
Test::__construct(WOW)
|
||||
object(Test)#%d (2) {
|
||||
TestClass::__construct(WOW)
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "A"
|
||||
["grp"]=>
|
||||
string(6) "Group1"
|
||||
}
|
||||
Test::__construct(WOW)
|
||||
object(Test)#%d (2) {
|
||||
TestClass::__construct(WOW)
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "B"
|
||||
["grp"]=>
|
||||
|
@ -20,7 +20,7 @@ $db->exec("INSERT INTO test014 VALUES(1, 'A', 'Group1')");
|
||||
$db->exec("INSERT INTO test014 VALUES(2, 'B', 'Group2')");
|
||||
$SELECT = 'SELECT val, grp FROM test014';
|
||||
|
||||
class Test
|
||||
class TestClass
|
||||
{
|
||||
public $val;
|
||||
public $grp;
|
||||
@ -31,7 +31,7 @@ class Test
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_CLASS, 'Test', array('WOW'));
|
||||
$stmt = $db->query($SELECT, PDO::FETCH_CLASS, TestClass::class, array('WOW'));
|
||||
|
||||
$it = new IteratorIterator($stmt); /* check if we can convert that thing */
|
||||
|
||||
@ -78,15 +78,15 @@ $db = PDOTest::factory();
|
||||
PDOTest::dropTableIfExists($db, "test014");
|
||||
?>
|
||||
--EXPECTF--
|
||||
Test::__construct(WOW)
|
||||
object(Test)#%d (2) {
|
||||
TestClass::__construct(WOW)
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "A"
|
||||
["grp"]=>
|
||||
string(6) "Group1"
|
||||
}
|
||||
Test::__construct(WOW)
|
||||
object(Test)#%d (2) {
|
||||
TestClass::__construct(WOW)
|
||||
object(TestClass)#%d (2) {
|
||||
["val"]=>
|
||||
string(1) "B"
|
||||
["grp"]=>
|
||||
|
@ -42,7 +42,7 @@ class PDODatabaseX extends PDO
|
||||
echo __METHOD__ . "()\n";
|
||||
}
|
||||
|
||||
function test()
|
||||
function testMethod()
|
||||
{
|
||||
$this->test2 = 2;
|
||||
var_dump($this->test1);
|
||||
@ -60,7 +60,7 @@ class PDODatabaseX extends PDO
|
||||
}
|
||||
|
||||
$db = PDOTest::factory('PDODatabaseX');
|
||||
$db->test();
|
||||
$db->testMethod();
|
||||
var_dump($db);
|
||||
|
||||
$db->query('CREATE TABLE test023(id INT NOT NULL PRIMARY KEY, val VARCHAR(10))');
|
||||
|
@ -12,12 +12,12 @@ require_once "payload_server.inc";
|
||||
$address = run_server(__DIR__ . "/bug_76449.data");
|
||||
|
||||
// no need to change the credentials; we're running against a fake server
|
||||
$dsn = "firebird:dbname=inet://$address/test";
|
||||
$dsn = "firebird:dbname=inet://$address/test76449";
|
||||
$username = 'SYSDBA';
|
||||
$password = 'masterkey';
|
||||
|
||||
$dbh = new PDO($dsn, $username, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
|
||||
var_dump($dbh->exec("INSERT INTO test VALUES ('hihi2', 'xxxxx')"));
|
||||
var_dump($dbh->exec("INSERT INTO test76449 VALUES ('hihi2', 'xxxxx')"));
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
|
@ -11,12 +11,12 @@ require_once "payload_server.inc";
|
||||
$address = run_server(__DIR__ . "/bug_76452.data");
|
||||
|
||||
// no need to change the credentials; we're running against a falke server
|
||||
$dsn = "firebird:dbname=inet://$address/test";
|
||||
$dsn = "firebird:dbname=inet://$address/test76452";
|
||||
$username = 'SYSDBA';
|
||||
$password = 'masterkey';
|
||||
|
||||
$dbh = new PDO($dsn, $username, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
|
||||
$query = $dbh->prepare("select * from test");
|
||||
$query = $dbh->prepare("SELECT * FROM test76452");
|
||||
$query->execute();
|
||||
var_dump($query->fetch());
|
||||
?>
|
||||
|
@ -17,12 +17,18 @@ $db = PDOTest::test_factory(__DIR__ . '/common.phpt');
|
||||
|
||||
setlocale(LC_ALL, "de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8");
|
||||
|
||||
$db->exec('CREATE TABLE test(floatval DECIMAL(8,6))');
|
||||
$db->exec('INSERT INTO test VALUES(2.34)');
|
||||
$db->exec('CREATE TABLE test_41698(floatval DECIMAL(8,6))');
|
||||
$db->exec('INSERT INTO test_41698 VALUES(2.34)');
|
||||
$value=4.56;
|
||||
$stmt = $db->prepare('INSERT INTO test VALUES(?)');
|
||||
$stmt = $db->prepare('INSERT INTO test_41698 VALUES(?)');
|
||||
$stmt->execute(array($value));
|
||||
var_dump($db->query('SELECT * from test')->fetchAll(PDO::FETCH_ASSOC));
|
||||
var_dump($db->query('SELECT * FROM test_41698')->fetchAll(PDO::FETCH_ASSOC));
|
||||
?>
|
||||
--CLEAN--
|
||||
<?php
|
||||
require __DIR__ . '/mysql_pdo_test.inc';
|
||||
$db = MySQLPDOTest::factory();
|
||||
$db->exec("DROP TABLE IF EXISTS test_41698");
|
||||
?>
|
||||
--EXPECT--
|
||||
array(2) {
|
||||
|
@ -10,26 +10,26 @@ $db = PDOTest::test_factory(__DIR__ . '/common.phpt');
|
||||
|
||||
#[AllowDynamicProperties]
|
||||
class Person {
|
||||
public $test = NULL;
|
||||
public $test_prop = NULL;
|
||||
public function __construct() {
|
||||
var_dump($this->test);
|
||||
var_dump($this->test_prop);
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = $db->query("SELECT 'foo' test, 1");
|
||||
$stmt = $db->query("SELECT 'foo' test_prop, 1");
|
||||
$stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Person');
|
||||
$r1 = $stmt->fetch();
|
||||
printf("'%s'\n", $r1->test);
|
||||
printf("'%s'\n", $r1->test_prop);
|
||||
|
||||
$stmt = $db->query("SELECT 'foo' test, 1");
|
||||
$stmt = $db->query("SELECT 'foo' test_prop, 1");
|
||||
$stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Person');
|
||||
$r1 = $stmt->fetchAll();
|
||||
printf("'%s'\n", $r1[0]->test);
|
||||
printf("'%s'\n", $r1[0]->test_prop);
|
||||
|
||||
$stmt = $db->query("SELECT 'foo' test, 1");
|
||||
$stmt = $db->query("SELECT 'foo' test_prop, 1");
|
||||
$stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'Person');
|
||||
$r1 = $stmt->fetch(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE);
|
||||
printf("'%s'\n", $r1->test);
|
||||
printf("'%s'\n", $r1->test_prop);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
@ -5,7 +5,7 @@ pdo_sqlite
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class test extends PDO
|
||||
class TestClass extends PDO
|
||||
{
|
||||
protected function isProtected() {
|
||||
echo "this is a protected method.\n";
|
||||
@ -23,7 +23,7 @@ class test extends PDO
|
||||
}
|
||||
}
|
||||
|
||||
$test = new test('sqlite::memory:');
|
||||
$test = new TestClass('sqlite::memory:');
|
||||
$test->quote('foo');
|
||||
$test->isProtected();
|
||||
|
||||
@ -33,7 +33,7 @@ this is a protected method.
|
||||
this is a private method.
|
||||
foo
|
||||
|
||||
Fatal error: Uncaught Error: Call to protected method test::isProtected() from global scope in %s:%d
|
||||
Fatal error: Uncaught Error: Call to protected method TestClass::isProtected() from global scope in %s:%d
|
||||
Stack trace:
|
||||
#0 {main}
|
||||
thrown in %s on line %d
|
||||
|
@ -12,7 +12,12 @@ $db->exec('CREATE TABLE test_fetch_func_001 (id INTEGER , name VARCHAR)');
|
||||
$db->exec('INSERT INTO test_fetch_func_001 VALUES(1, "php"), (2, "")');
|
||||
|
||||
$st = $db->query('SELECT * FROM test_fetch_func_001');
|
||||
$st->fetchAll(PDO::FETCH_FUNC, function($x, $y) use ($st) { var_dump($st); print "data: $x, $y\n"; });
|
||||
$st->fetchAll(
|
||||
PDO::FETCH_FUNC,
|
||||
function($x, $y) use ($st) {
|
||||
var_dump($st, $x, $y);
|
||||
}
|
||||
);
|
||||
|
||||
$st = $db->query('SELECT name FROM test_fetch_func_001');
|
||||
var_dump($st->fetchAll(PDO::FETCH_FUNC, 'strtoupper'));
|
||||
@ -63,7 +68,7 @@ class bar extends foo {
|
||||
var_dump($st->fetchAll(PDO::FETCH_FUNC, array($this, 'parent::method')));
|
||||
}
|
||||
|
||||
static public function test($x, $y) {
|
||||
static public function test1($x, $y) {
|
||||
return $x .'---'. $y;
|
||||
}
|
||||
|
||||
@ -79,7 +84,7 @@ class bar extends foo {
|
||||
new bar($db);
|
||||
|
||||
$st = $db->query('SELECT * FROM test_fetch_func_001');
|
||||
var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test')));
|
||||
var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test1')));
|
||||
|
||||
try {
|
||||
$st = $db->query('SELECT * FROM test_fetch_func_001');
|
||||
@ -108,12 +113,14 @@ object(PDOStatement)#%d (1) {
|
||||
["queryString"]=>
|
||||
string(33) "SELECT * FROM test_fetch_func_001"
|
||||
}
|
||||
data: 1, php
|
||||
int(1)
|
||||
string(3) "php"
|
||||
object(PDOStatement)#%d (1) {
|
||||
["queryString"]=>
|
||||
string(33) "SELECT * FROM test_fetch_func_001"
|
||||
}
|
||||
data: 2,
|
||||
int(2)
|
||||
string(0) ""
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(3) "PHP"
|
||||
|
Loading…
Reference in New Issue
Block a user