xref: /php-src/ext/pdo/tests/bug_36798.phpt (revision f4a5db3e)
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