1--TEST--
2MySQL PDO->prepare(), native PS, named placeholder
3--SKIPIF--
4<?php
5require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
6require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
7MySQLPDOTest::skip();
8$db = MySQLPDOTest::factory();
9?>
10--FILE--
11<?php
12	require_once(dirname(__FILE__) . 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 dirname(__FILE__) . '/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!