1--TEST-- 2PDO Common: Bug #36798 (Error parsing named parameters with queries containing high-ascii chars) 3--EXTENSIONS-- 4pdo 5--SKIPIF-- 6<?php 7$dir = getenv('REDIR_TEST_DIR'); 8if (false == $dir) die('skip no driver'); 9require_once $dir . 'pdo_test.inc'; 10PDOTest::skip(); 11 12if (!strncasecmp(getenv('PDOTEST_DSN'), 'oci', strlen('oci'))){ 13 if (!strpos(strtolower(getenv('PDOTEST_DSN')), 'charset=we8mswin1252')) die('skip expected output valid for Oracle with WE8MSWIN1252 character set'); 14} elseif (!strncasecmp(getenv('PDOTEST_DSN'), 'dblib', strlen('dblib'))) { 15 die('skip not for pdo_dblib'); 16} elseif (!strncasecmp(getenv('PDOTEST_DSN'), 'odbc', strlen('odbc'))) { 17 die('skip not for pdo_odbc'); 18} 19 20?> 21--FILE-- 22<?php 23 24if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.__DIR__ . '/../../pdo/tests/'); 25require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; 26$db = PDOTest::factory(); 27 28@$db->exec("SET NAMES 'LATIN1'"); // needed for PostgreSQL 29$db->exec("CREATE TABLE test36798 (id INTEGER)"); 30$db->exec("INSERT INTO test36798 (id) VALUES (1)"); 31 32$stmt = $db->prepare("SELECT '�' as test FROM test36798 WHERE id = :id"); 33$stmt->execute(array(":id" => 1)); 34 35$row = $stmt->fetch(PDO::FETCH_NUM); 36var_dump( $row ); 37 38?> 39--CLEAN-- 40<?php 41require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; 42$db = PDOTest::factory(); 43PDOTest::dropTableIfExists($db, "test36798"); 44?> 45--EXPECT-- 46array(1) { 47 [0]=> 48 string(1) "�" 49} 50