xref: /PHP-8.4/ext/pdo_mysql/tests/bug81037.phpt (revision 4bb75d56)
1--TEST--
2Bug #81037 PDO discards error message text from prepared statement
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
14$pdo = MySQLPDOTest::factory();
15$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
16$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
17
18$table = 'bug81037_pdo_mysql';
19MySQLPDOTest::createTestTable($table, $pdo);
20
21$sql = "SELECT id FROM {$table} WHERE label = :par";
22$stmt = $pdo->prepare($sql);
23try {
24    $stmt->execute();
25} catch (PDOException $e) {
26    echo $e->getMessage(), "\n";
27}
28$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
29?>
30--CLEAN--
31<?php
32require_once __DIR__ . '/inc/mysql_pdo_test.inc';
33$db = MySQLPDOTest::factory();
34$db->exec('DROP TABLE IF EXISTS bug81037_pdo_mysql');
35?>
36--EXPECT--
37SQLSTATE[HY093]: Invalid parameter number
38