]> granicus.if.org Git - php/commitdiff
actually register PDO_PARAM_BOOL as a constant (doh!).
authorWez Furlong <wez@php.net>
Sat, 10 Sep 2005 20:58:19 +0000 (20:58 +0000)
committerWez Furlong <wez@php.net>
Sat, 10 Sep 2005 20:58:19 +0000 (20:58 +0000)
When emulating bound parameters, pass booleans via the driver's quoter
method, so that is has an opportunity to tweak it.
Refs #33876: PDO misquotes/miscasts bool(false)

ext/pdo/pdo.c
ext/pdo/pdo_sql_parser.re

index c12cef1ad6a0e525e9234c0f74481036300a00a5..e5c2796cab083473566b8b9196806b7cf2740e2e 100755 (executable)
@@ -295,6 +295,7 @@ PHP_MINIT_FUNCTION(pdo)
        le_ppdo = zend_register_list_destructors_ex(NULL, php_pdo_pdbh_dtor,
                "PDO persistent database", module_number);
 
+       REGISTER_LONG_CONSTANT("PDO_PARAM_BOOL", (long)PDO_PARAM_BOOL,  CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_PARAM_NULL", (long)PDO_PARAM_NULL,  CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_PARAM_INT",  (long)PDO_PARAM_INT,   CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("PDO_PARAM_STR",  (long)PDO_PARAM_STR,   CONST_CS|CONST_PERSISTENT);
index ce982096fb567547ad3a9e35dbce9b9b5cd50067..eeae984573c707ce0266f31eaa182714ec492463 100644 (file)
@@ -210,8 +210,6 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len,
                                                        plc->freeq = 0;
                                                        break;
 
-                                               case IS_BOOL:
-                                                       convert_to_long(param->parameter);
                                                case IS_LONG:
                                                case IS_DOUBLE:
                                                        convert_to_string(param->parameter);
@@ -220,6 +218,8 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len,
                                                        plc->freeq = 0;
                                                        break;
 
+                                               case IS_BOOL:
+                                                       convert_to_long(param->parameter);
                                                default:
                                                        convert_to_string(param->parameter);
                                                        if (!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_P(param->parameter),