1--TEST--
2MySQL PDO->prepare(), native PS, named placeholder
3--SKIPIF--
4<?php
5require_once(__DIR__ . DIRECTORY_SEPARATOR . 'skipif.inc');
6require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
7MySQLPDOTest::skip();
8$db = MySQLPDOTest::factory();
9?>
10--FILE--
11<?php
12    require_once(__DIR__ . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
13    $db = MySQLPDOTest::factory();
14    MySQLPDOTest::createTestTable($db);
15
16    $db->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, 0);
17    if (0 != $db->getAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY))
18        printf("[002] Unable to turn off emulated prepared statements\n");
19
20    $stmt = $db->prepare("SELECT :param FROM test ORDER BY id ASC LIMIT 1");
21    $stmt->execute(array(':param' => 'id'));
22    var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
23
24    $db->prepare('SELECT :placeholder FROM test WHERE :placeholder > :placeholder');
25    $stmt->execute(array(':placeholder' => 'test'));
26
27    var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
28
29    print "done!";
30?>
31--CLEAN--
32<?php
33require __DIR__ . '/mysql_pdo_test.inc';
34$db = MySQLPDOTest::factory();
35$db->exec('DROP TABLE IF EXISTS test');
36?>
37--EXPECTF--
38array(1) {
39  [0]=>
40  array(1) {
41    ["?"]=>
42    string(2) "id"
43  }
44}
45
46Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in %s on line %d
47array(0) {
48}
49done!
50