andrey          Wed Apr 27 08:12:58 2005 EDT

  Modified files:              
    /php-src/ext/mysqli mysqli_nonapi.c php_mysqli.h 
    /php-src/ext/mysqli/tests   bug31668.phpt 
  Log:
  MFB (fixing bug 31668)
  
  
http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.40&r2=1.41&ty=u
Index: php-src/ext/mysqli/mysqli_nonapi.c
diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.40 
php-src/ext/mysqli/mysqli_nonapi.c:1.41
--- php-src/ext/mysqli/mysqli_nonapi.c:1.40     Thu Feb 24 18:58:59 2005
+++ php-src/ext/mysqli/mysqli_nonapi.c  Wed Apr 27 08:12:58 2005
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_nonapi.c,v 1.40 2005/02/24 23:58:59 iliaa Exp $ 
+  $Id: mysqli_nonapi.c,v 1.41 2005/04/27 12:12:58 andrey Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -67,7 +67,7 @@
                }
        }
 
-       mysql = (MY_MYSQL *)calloc(1, sizeof(MY_MYSQL));
+       mysql = (MY_MYSQL *) ecalloc(1, sizeof(MY_MYSQL));
 
        if (!(mysql->mysql = mysql_init(NULL))) {
                efree(mysql);
http://cvs.php.net/diff.php/php-src/ext/mysqli/php_mysqli.h?r1=1.43&r2=1.44&ty=u
Index: php-src/ext/mysqli/php_mysqli.h
diff -u php-src/ext/mysqli/php_mysqli.h:1.43 
php-src/ext/mysqli/php_mysqli.h:1.44
--- php-src/ext/mysqli/php_mysqli.h:1.43        Sun Jan 16 14:28:55 2005
+++ php-src/ext/mysqli/php_mysqli.h     Wed Apr 27 08:12:58 2005
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: php_mysqli.h,v 1.43 2005/01/16 19:28:55 zak Exp $ 
+  $Id: php_mysqli.h,v 1.44 2005/04/27 12:12:58 andrey Exp $ 
 */
 
 /* A little hack to prevent build break, when mysql is used together with
@@ -57,6 +57,7 @@
        MYSQL           *mysql;
        zval            *li_read;
        php_stream      *li_stream;
+       unsigned int multi_query;       
 } MY_MYSQL;
 
 typedef struct {
@@ -149,14 +150,14 @@
 
 PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * 
TSRMLS_DC);
 
-#define MYSQLI_DISABLE_MQ if (MyG(multi_query)) { \
+#define MYSQLI_DISABLE_MQ if (mysql->multi_query) { \
        mysql_set_server_option(mysql->mysql, 
MYSQL_OPTION_MULTI_STATEMENTS_OFF); \
-       MyG(multi_query) = 0; \
+       mysql->multi_query = 0; \
 } 
 
-#define MYSQLI_ENABLE_MQ if (!MyG(multi_query)) { \
+#define MYSQLI_ENABLE_MQ if (!mysql->multi_query) { \
        mysql_set_server_option(mysql->mysql, 
MYSQL_OPTION_MULTI_STATEMENTS_ON); \
-       MyG(multi_query) = 1; \
+       mysql->multi_query = 1; \
 } 
 
 #define REGISTER_MYSQLI_CLASS_ENTRY(name, mysqli_entry, class_functions) { \
http://cvs.php.net/diff.php/php-src/ext/mysqli/tests/bug31668.phpt?r1=1.1&r2=1.2&ty=u
Index: php-src/ext/mysqli/tests/bug31668.phpt
diff -u /dev/null php-src/ext/mysqli/tests/bug31668.phpt:1.2
--- /dev/null   Wed Apr 27 08:12:58 2005
+++ php-src/ext/mysqli/tests/bug31668.phpt      Wed Apr 27 08:12:58 2005
@@ -0,0 +1,56 @@
+--TEST--
+Bug #31668 multi_query works exactly every other time (multi_query was global, 
now per connection)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+       include "connect.inc";
+
+       $mysql = new mysqli($host, $user, $passwd, "test");
+       $mysql->multi_query('SELECT 1;SELECT 2');
+       do {
+               $res = $mysql->store_result();  
+               if ($mysql->errno == 0) {
+                       while ($arr = $res->fetch_assoc()) {
+                               var_dump($arr);
+                       }
+                       $res->free();
+               }
+       } while ($mysql->next_result());
+       var_dump($mysql->error, __LINE__);
+       $mysql->close();
+
+       $mysql = new mysqli($host, $user, $passwd, "test");
+       $mysql->multi_query('SELECT 1;SELECT 2');
+       do {
+               $res = $mysql->store_result();  
+               if ($mysql->errno == 0) {
+                       while ($arr = $res->fetch_assoc()) {
+                               var_dump($arr);
+                       }
+                       $res->free();
+               }
+       } while ($mysql->next_result());
+       var_dump($mysql->error, __LINE__);
+?>
+--EXPECTF--
+array(1) {
+  [1]=>
+  string(1) "1"
+}
+array(1) {
+  [2]=>
+  string(1) "2"
+}
+string(0) ""
+int(%d)
+array(1) {
+  [1]=>
+  string(1) "1"
+}
+array(1) {
+  [2]=>
+  string(1) "2"
+}
+string(0) ""
+int(%d)

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

Reply via email to