georg           Mon Dec 20 11:42:20 2004 EDT

  Modified files:              (Branch: PHP_5_0)
    /php-src    NEWS 
    /php-src/ext/mysqli mysqli_api.c 
  Log:
  MFH: Fixed type conversion for NULL values in mysql_stmt_execute
  
  
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.168&r2=1.1760.2.169&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1760.2.168 php-src/NEWS:1.1760.2.169
--- php-src/NEWS:1.1760.2.168   Sun Dec 19 13:17:43 2004
+++ php-src/NEWS        Mon Dec 20 11:42:19 2004
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2005, PHP 5.0.4
+- Fixed a bug in mysql_stmt_execute (type conversion with NULL values). (Georg)
 - Fixed bug #31139 (XML Parser Functions seem to drop & when parsing). 
(Rob)
 - Fixed bug #31111 (Compile failure of zend_strtod.c). (Derick)
 - Fixed bug #31110 (PHP 4.3.10 does not compile on Tru64 UNIX 5.1B). (Derick)
http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_api.c?r1=1.87.2.5&r2=1.87.2.6&ty=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.87.2.5 
php-src/ext/mysqli/mysqli_api.c:1.87.2.6
--- php-src/ext/mysqli/mysqli_api.c:1.87.2.5    Mon Nov  1 02:57:45 2004
+++ php-src/ext/mysqli/mysqli_api.c     Mon Dec 20 11:42:20 2004
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_api.c,v 1.87.2.5 2004/11/01 07:57:45 georg Exp $ 
+  $Id: mysqli_api.c,v 1.87.2.6 2004/12/20 16:42:20 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -540,25 +540,25 @@
        
        for (i = 0; i < stmt->param.var_cnt; i++) {             
                if (stmt->param.vars[i]) {
-                       stmt->param.is_null[i] = (stmt->param.vars[i]->type == 
IS_NULL);
-
-                       switch (stmt->stmt->params[i].buffer_type) {
-                               case MYSQL_TYPE_VAR_STRING:
-                                       
convert_to_string_ex(&stmt->param.vars[i]);
-                                       stmt->stmt->params[i].buffer = 
Z_STRVAL_PP(&stmt->param.vars[i]);
-                                       stmt->stmt->params[i].buffer_length = 
strlen(Z_STRVAL_PP(&stmt->param.vars[i]));
-                                       break;
-                               case MYSQL_TYPE_DOUBLE:
-                                       
convert_to_double_ex(&stmt->param.vars[i]);
-                                       stmt->stmt->params[i].buffer = 
(gptr)&Z_LVAL_PP(&stmt->param.vars[i]);
-                                       break;
-                               case MYSQL_TYPE_LONG:
-                                       
convert_to_long_ex(&stmt->param.vars[i]);
-                                       stmt->stmt->params[i].buffer = 
(gptr)&Z_LVAL_PP(&stmt->param.vars[i]);
-                                       break;
-                               default:
-                                       break;
-                       }       
+                       if ( !(stmt->param.is_null[i] = 
(stmt->param.vars[i]->type == IS_NULL)) ) {
+                               switch (stmt->stmt->params[i].buffer_type) {
+                                       case MYSQL_TYPE_VAR_STRING:
+                                               
convert_to_string_ex(&stmt->param.vars[i]);
+                                               stmt->stmt->params[i].buffer = 
Z_STRVAL_PP(&stmt->param.vars[i]);
+                                               
stmt->stmt->params[i].buffer_length = strlen(Z_STRVAL_PP(&stmt->param.vars[i]));
+                                               break;
+                                       case MYSQL_TYPE_DOUBLE:
+                                               
convert_to_double_ex(&stmt->param.vars[i]);
+                                               stmt->stmt->params[i].buffer = 
(gptr)&Z_LVAL_PP(&stmt->param.vars[i]);
+                                               break;
+                                       case MYSQL_TYPE_LONG:
+                                               
convert_to_long_ex(&stmt->param.vars[i]);
+                                               stmt->stmt->params[i].buffer = 
(gptr)&Z_LVAL_PP(&stmt->param.vars[i]);
+                                               break;
+                                       default:
+                                               break;
+                               }
+                       }
                }
        }
        if (mysql_stmt_execute(stmt->stmt)) {

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

Reply via email to