1--TEST-- 2PDO MySQL national character set parameters don't affect true prepared statements 3--EXTENSIONS-- 4pdo_mysql 5--SKIPIF-- 6<?php 7require_once __DIR__ . '/inc/mysql_pdo_test.inc'; 8MySQLPDOTest::skip(); 9?> 10--FILE-- 11<?php 12require_once __DIR__ . '/inc/mysql_pdo_test.inc'; 13$db = MySQLPDOTest::factory(); 14 15$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0); 16 17$db->exec('CREATE TABLE test_param_str_natl (bar NCHAR(4) NOT NULL)'); 18 19$stmt = $db->prepare('INSERT INTO test_param_str_natl VALUES(?)'); 20$stmt->bindValue(1, 'foo', PDO::PARAM_STR | PDO::PARAM_STR_NATL); 21$stmt->execute(); 22 23var_dump($db->query('SELECT * from test_param_str_natl')); 24foreach ($db->query('SELECT * from test_param_str_natl') AS $row) { 25 print_r($row); 26} 27?> 28--CLEAN-- 29<?php 30require_once __DIR__ . '/inc/mysql_pdo_test.inc'; 31$db = MySQLPDOTest::factory(); 32$db->exec('DROP TABLE IF EXISTS test_param_str_natl'); 33?> 34--EXPECTF-- 35object(PDOStatement)#%d (1) { 36 ["queryString"]=> 37 string(33) "SELECT * from test_param_str_natl" 38} 39Array 40( 41 [bar] => foo 42 [0] => foo 43) 44