]> granicus.if.org Git - php/commitdiff
Fix #77944: Wrong meta pdo_type for bigint on LLP64
authorChristoph M. Becker <cmbecker69@gmx.de>
Sat, 27 Apr 2019 16:46:27 +0000 (18:46 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Sat, 27 Apr 2019 16:46:27 +0000 (18:46 +0200)
When actually fetching the data, bigint (unsigned) column values are
returned as integers on LLP64 architectures, so their pdo_type has to
be PDO::PARAM_INT accordingly.

NEWS
ext/pdo_mysql/mysql_statement.c

diff --git a/NEWS b/NEWS
index 2cbbcc26b2eb7098814e6b6f5b89d413aa76a34c..b48bd1eacc56c030d7a3f5809cfea23d54cdfd59 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,9 @@ PHP                                                                        NEWS
 - JSON:
   . Fixed bug #77843 (Use after free with json serializer). (Nikita)
 
+- PDO_MySQL:
+  . Fixed bug #77944 (Wrong meta pdo_type for bigint on LLP64). (cmb)
+
 - Session:
   . Fixed bug #77911 (Wrong warning for session.sid_bits_per_character). (cmb)
 
index f4a387999844ab4455695d55c07e32f9f6d6b9b5..2777f3ccc44a28dbe7ea38e4c7998c3e98c039f6 100644 (file)
@@ -876,7 +876,7 @@ static int pdo_mysql_stmt_col_meta(pdo_stmt_t *stmt, zend_long colno, zval *retu
                case MYSQL_TYPE_SHORT:
                case MYSQL_TYPE_INT24:
                case MYSQL_TYPE_LONG:
-#if SIZEOF_LONG==8
+#if SIZEOF_ZEND_LONG==8
                case MYSQL_TYPE_LONGLONG:
 #endif
                        add_assoc_long(return_value, "pdo_type", PDO_PARAM_INT);