]> granicus.if.org Git - php/commitdiff
Fix #80521: Parameters with underscores no longer recognized
authorChristoph M. Becker <cmbecker69@gmx.de>
Wed, 16 Dec 2020 19:02:45 +0000 (20:02 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 16 Dec 2020 19:04:52 +0000 (20:04 +0100)
We have to use the proper value for the bitmask.

NEWS
ext/pdo_firebird/firebird_driver.c
ext/pdo_firebird/tests/bug_80521.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index c75d6e65495496209e3b6595b52bf90d0a74f02e..8b0ce956009646e2beeddeaaa131b42043d0488c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,10 @@ PHP                                                                        NEWS
   . Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to
     interpret bit columns). (Nikita)
 
+- PDO_Firebird:
+  . Fixed bug #80521 (Parameters with underscores no longer recognized). (cmb,
+    Simonov Denis)
+
 07 Jan 2021, PHP 8.0.1
 
 - Core:
index c27a9e2ed553aeb81fc96f533c1b0c014579b567..7721b64de517f5678b76850eb366a5908e3898fb 100644 (file)
@@ -136,7 +136,7 @@ static const char classes_array[] = {
        /* 092  \  */ 0,
        /* 093  ]  */ 0,
        /* 094  ^  */ 0,
-       /* 095  _  */ 65, /* CHR_IDENT | CHR_INTRODUCER */
+       /* 095  _  */ 68, /* CHR_IDENT | CHR_INTRODUCER */
        /* 096  `  */ 0,
        /* 097  a  */ 37, /* CHR_LETTER | CHR_IDENT | CHR_HEX */
        /* 098  b  */ 37, /* CHR_LETTER | CHR_IDENT | CHR_HEX */
diff --git a/ext/pdo_firebird/tests/bug_80521.phpt b/ext/pdo_firebird/tests/bug_80521.phpt
new file mode 100644 (file)
index 0000000..dc5916d
--- /dev/null
@@ -0,0 +1,21 @@
+--TEST--
+Bug #80521 (Parameters with underscores no longer recognized)
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+require 'testdb.inc';
+
+$dbh->exec("CREATE TABLE bug80521 (foo INTEGER)");
+var_dump($dbh->prepare("SELECT foo FROM bug80521 WHERE foo = :foo_bar"));
+?>
+--EXPECTF--
+object(PDOStatement)#%d (1) {
+  ["queryString"]=>
+  string(45) "SELECT foo FROM bug80521 WHERE foo = :foo_bar"
+}
+--CLEAN--
+<?php
+require 'testdb.inc';
+$dbh->exec("DROP TABLE bug80521");
+?>