andrey Wed Apr 27 08:03:05 2005 EDT Added files: (Branch: PHP_5_0) /php-src/ext/mysqli/tests bug31668.phpt
Modified files: /php-src/ext/mysqli mysqli_nonapi.c php_mysqli.h Log: - Fix bug 31668 (multi query fails every other time). The multi_query flag was global and not per connection. - use ecalloc() instead of calloc() for memory that will be freed with efree() http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.34.2.5&r2=1.34.2.6&ty=u Index: php-src/ext/mysqli/mysqli_nonapi.c diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.5 php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.6 --- php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.5 Thu Feb 24 18:59:49 2005 +++ php-src/ext/mysqli/mysqli_nonapi.c Wed Apr 27 08:03:04 2005 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli_nonapi.c,v 1.34.2.5 2005/02/24 23:59:49 iliaa Exp $ + $Id: mysqli_nonapi.c,v 1.34.2.6 2005/04/27 12:03:04 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); @@ -132,7 +132,7 @@ return; } - mysql = (MY_MYSQL *) calloc(1, sizeof(MY_MYSQL)); + mysql = (MY_MYSQL *) ecalloc(1, sizeof(MY_MYSQL)); if (!(mysql = mysql_init(NULL))) { efree(mysql); @@ -217,7 +217,7 @@ MY_MYSQL *mysql; zval *mysql_link; char *query = NULL; - unsigned int query_len; + unsigned long query_len; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) { return; http://cvs.php.net/diff.php/php-src/ext/mysqli/php_mysqli.h?r1=1.38.2.2&r2=1.38.2.3&ty=u Index: php-src/ext/mysqli/php_mysqli.h diff -u php-src/ext/mysqli/php_mysqli.h:1.38.2.2 php-src/ext/mysqli/php_mysqli.h:1.38.2.3 --- php-src/ext/mysqli/php_mysqli.h:1.38.2.2 Sat Sep 4 10:19:20 2004 +++ php-src/ext/mysqli/php_mysqli.h Wed Apr 27 08:03:04 2005 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: php_mysqli.h,v 1.38.2.2 2004/09/04 14:19:20 georg Exp $ + $Id: php_mysqli.h,v 1.38.2.3 2005/04/27 12:03:04 andrey Exp $ */ /* A little hack to prevent build break, when mysql is used together with @@ -55,6 +55,7 @@ MYSQL *mysql; zval *li_read; php_stream *li_stream; + unsigned int multi_query; } MY_MYSQL; typedef struct { @@ -131,14 +132,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) { \ @@ -386,7 +387,6 @@ char *error_msg; int report_mode; HashTable *report_ht; - unsigned int multi_query; #ifdef HAVE_EMBEDDED_MYSQLI unsigned int embedded; #endif http://cvs.php.net/co.php/php-src/ext/mysqli/tests/bug31668.phpt?r=1.1&p=1 Index: php-src/ext/mysqli/tests/bug31668.phpt +++ php-src/ext/mysqli/tests/bug31668.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php