wez             Sat Feb 26 10:45:43 2005 EDT

  Modified files:              
    /php-src/ext/pdo    pdo_sql_parser.c 
  Log:
  and the generated file
  
  
http://cvs.php.net/diff.php/php-src/ext/pdo/pdo_sql_parser.c?r1=1.23&r2=1.24&ty=u
Index: php-src/ext/pdo/pdo_sql_parser.c
diff -u php-src/ext/pdo/pdo_sql_parser.c:1.23 
php-src/ext/pdo/pdo_sql_parser.c:1.24
--- php-src/ext/pdo/pdo_sql_parser.c:1.23       Sun Feb 13 01:30:36 2005
+++ php-src/ext/pdo/pdo_sql_parser.c    Sat Feb 26 10:45:43 2005
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.3 on Sun Feb 13 00:25:51 2005  */
+/* Generated by re2c 0.9.3 on Sat Feb 26 10:44:39 2005 */
 #line 1 "pdo_sql_parser.re"
 /*
   +----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: pdo_sql_parser.c,v 1.23 2005/02/13 06:30:36 wez Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.24 2005/02/26 15:45:43 wez Exp $ */
 
 #include "php.h"
 #include "php_pdo_driver.h"
@@ -326,18 +326,38 @@
                                                ret = -1;
                                                goto clean_up;
                                        }
+                                       plc->freeq = 1;
                                } else {
-                                       convert_to_string(param->parameter);
-                                       if 
(!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_P(param->parameter),
-                                                               
Z_STRLEN_P(param->parameter), &plc->quoted, &plc->qlen,
-                                                               
param->param_type TSRMLS_CC)) {
-                                               /* bork */
-                                               ret = -1;
-                                               strcpy(stmt->error_code, 
stmt->dbh->error_code);
-                                               goto clean_up;
+                                       switch (Z_TYPE_P(param->parameter)) {
+                                               case IS_NULL:
+                                                       plc->quoted = "NULL";
+                                                       plc->qlen = 
sizeof("NULL")-1;
+                                                       plc->freeq = 0;
+                                                       break;
+
+                                               case IS_BOOL:
+                                                       
convert_to_long(param->parameter);
+                                               case IS_LONG:
+                                               case IS_DOUBLE:
+                                                       
convert_to_string(param->parameter);
+                                                       plc->qlen = 
Z_STRLEN_P(param->parameter);
+                                                       plc->quoted = 
Z_STRLEN_P(param->parameter);
+                                                       plc->freeq = 0;
+                                                       break;
+
+                                               default:
+                                                       
convert_to_string(param->parameter);
+                                                       if 
(!stmt->dbh->methods->quoter(stmt->dbh, Z_STRVAL_P(param->parameter),
+                                                                       
Z_STRLEN_P(param->parameter), &plc->quoted, &plc->qlen,
+                                                                       
param->param_type TSRMLS_CC)) {
+                                                               /* bork */
+                                                               ret = -1;
+                                                               
strcpy(stmt->error_code, stmt->dbh->error_code);
+                                                               goto clean_up;
+                                                       }
+                                                       plc->freeq = 1;
                                        }
                                }
-                               plc->freeq = 1;
                        } else {
                                plc->quoted = Z_STRVAL_P(param->parameter);
                                plc->qlen = Z_STRLEN_P(param->parameter);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to