Fixed bug #70313 PDO statement fails to throw exception

This commit is contained in:
Matteo Beccati 2016-07-10 13:04:49 +02:00
parent 51d19891a4
commit 219ebcb689
3 changed files with 42 additions and 2 deletions

5
NEWS
View File

@ -9,10 +9,13 @@ PHP NEWS
. Fixed bug #71144 (Segmentation fault when using cURL with ZTS).
(maroszek at gmx dot net)
- Filter
- Filter:
. Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8
range). (bugs dot php dot net at majkl578 dot cz)
- PDO_pgsql:
. Fixed bug #70313 (PDO statement fails to throw exception). (Matteo)
21 Jul 2016, PHP 5.6.24
- Core:

View File

@ -280,7 +280,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *
case PDO_PARAM_EVT_EXEC_PRE:
if (!stmt->bound_param_map) {
return 0;
return 1;
}
if (!S->param_values) {
S->param_values = ecalloc(

View File

@ -0,0 +1,37 @@
--TEST--
PDO PgSQL Bug #70313 (PDO statement fails to throw exception)
--SKIPIF--
<?php
if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
require dirname(__FILE__) . '/config.inc';
require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
PDOTest::skip();
?>
--FILE--
<?php
require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
try {
$stmt = $db->prepare(");");
$stmt->execute([1]);
} catch (PDOException $e) {
var_dump($e->getCode());
}
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
try {
$stmt = $db->prepare(");");
$stmt->execute([1]);
} catch (PDOException $e) {
var_dump($e->getCode());
}
?>
--EXPECT--
string(5) "42601"
string(5) "42601"