cvs: php-src(PHP_5_2) / NEWS /ext/pdo/tests pdo_016.phpt pdo_016a.phpt pdo_021.phpt /ext/pdo_mysql mysql_statement.c

From: Date: Sat, 02 Dec 2006 17:53:44 +0000
Subject: cvs: php-src(PHP_5_2) / NEWS /ext/pdo/tests pdo_016.phpt pdo_016a.phpt pdo_021.phpt /ext/pdo_mysql mysql_statement.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-41828@lists.php.net to get a copy of this message
iliaa Sat Dec 2 17:53:44 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/pdo_mysql mysql_statement.c /php-src/ext/pdo/tests pdo_016.phpt pdo_016a.phpt pdo_021.phpt /php-src NEWS Log: Fixed bug #39527 (Failure to retrieve results when multiple unbuffered, prepared statements are used in pdo_mysql). http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_mysql/mysql_statement.c?r1=1.48.2.14&r2=1.48.2.14.2.1&diff_format=u Index: php-src/ext/pdo_mysql/mysql_statement.c diff -u php-src/ext/pdo_mysql/mysql_statement.c:1.48.2.14 php-src/ext/pdo_mysql/mysql_statement.c:1.48.2.14.2.1 --- php-src/ext/pdo_mysql/mysql_statement.c:1.48.2.14 Sat Apr 22 16:35:18 2006 +++ php-src/ext/pdo_mysql/mysql_statement.c Sat Dec 2 17:53:43 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysql_statement.c,v 1.48.2.14 2006/04/22 16:35:18 wez Exp $ */ +/* $Id: mysql_statement.c,v 1.48.2.14.2.1 2006/12/02 17:53:43 iliaa Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -68,15 +68,17 @@ } #endif #if HAVE_MYSQL_NEXT_RESULT - while (mysql_more_results(S->H->server)) { - MYSQL_RES *res; - if (mysql_next_result(S->H->server) != 0) { - break; - } + if (S->H->server) { + while (mysql_more_results(S->H->server)) { + MYSQL_RES *res; + if (mysql_next_result(S->H->server) != 0) { + break; + } - res = mysql_store_result(S->H->server); - if (res) { - mysql_free_result(res); + res = mysql_store_result(S->H->server); + if (res) { + mysql_free_result(res); + } } } #endif @@ -593,16 +595,24 @@ static int pdo_mysql_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC) { pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; + + if (S->result) { + mysql_free_result(S->result); + S->result = NULL; + } #if HAVE_MYSQL_STMT_PREPARE if (S->stmt) { - int retval = mysql_stmt_free_result(S->stmt); + int retval; + if (!S->H->buffered) { + retval = mysql_stmt_close(S->stmt); + S->stmt = NULL; + } else { + retval = mysql_stmt_free_result(S->stmt); + } return retval ? 0 : 1; } #endif - if (S->result) { - mysql_free_result(S->result); - S->result = NULL; - } + #if HAVE_MYSQL_NEXT_RESULT while (mysql_more_results(S->H->server)) { MYSQL_RES *res; http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/tests/pdo_016.phpt?r1=1.8.2.3&r2=1.8.2.3.2.1&diff_format=u Index: php-src/ext/pdo/tests/pdo_016.phpt diff -u php-src/ext/pdo/tests/pdo_016.phpt:1.8.2.3 php-src/ext/pdo/tests/pdo_016.phpt:1.8.2.3.2.1 --- php-src/ext/pdo/tests/pdo_016.phpt:1.8.2.3 Mon Oct 3 15:06:27 2005 +++ php-src/ext/pdo/tests/pdo_016.phpt Sat Dec 2 17:53:44 2006 @@ -14,6 +14,10 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; $db = PDOTest::factory(); +if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { + $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); +} + $db->exec('CREATE TABLE test(idx int NOT NULL PRIMARY KEY, txt VARCHAR(20))'); $db->exec('INSERT INTO test VALUES(0, \'String0\')'); $db->exec('INSERT INTO test VALUES(1, \'String1\')'); http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/tests/pdo_016a.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u Index: php-src/ext/pdo/tests/pdo_016a.phpt diff -u php-src/ext/pdo/tests/pdo_016a.phpt:1.1.2.3 php-src/ext/pdo/tests/pdo_016a.phpt:1.1.2.3.2.1 --- php-src/ext/pdo/tests/pdo_016a.phpt:1.1.2.3 Mon Oct 3 15:06:27 2005 +++ php-src/ext/pdo/tests/pdo_016a.phpt Sat Dec 2 17:53:44 2006 @@ -14,6 +14,10 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; $db = PDOTest::factory(); +if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { + $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); +} + $db->exec('CREATE TABLE test(idx int NOT NULL PRIMARY KEY, txt VARCHAR(20))'); $db->exec('INSERT INTO test VALUES(0, \'String0\')'); $db->exec('INSERT INTO test VALUES(1, \'String1\')'); http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/tests/pdo_021.phpt?r1=1.8.2.2&r2=1.8.2.2.2.1&diff_format=u Index: php-src/ext/pdo/tests/pdo_021.phpt diff -u php-src/ext/pdo/tests/pdo_021.phpt:1.8.2.2 php-src/ext/pdo/tests/pdo_021.phpt:1.8.2.2.2.1 --- php-src/ext/pdo/tests/pdo_021.phpt:1.8.2.2 Mon Oct 3 15:06:27 2005 +++ php-src/ext/pdo/tests/pdo_021.phpt Sat Dec 2 17:53:44 2006 @@ -14,6 +14,10 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc'; $db = PDOTest::factory(); +if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { + $db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true); +} + $db->exec('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10), val2 VARCHAR(16))'); $select = $db->prepare('SELECT COUNT(id) FROM test'); http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.391&r2=1.2027.2.547.2.392&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.391 php-src/NEWS:1.2027.2.547.2.392 --- php-src/NEWS:1.2027.2.547.2.391 Fri Dec 1 20:10:35 2006 +++ php-src/NEWS Sat Dec 2 17:53:44 2006 @@ -77,6 +77,8 @@ number of backslashes). (David Soria Parra, Pierre) - Fixed bug #39534 (Error in maths to calculate of ZEND_MM_ALIGNED_MIN_HEADER_SIZE). (wharmby at uk dot ibm dot com, Dmitry) +- Fixed bug #39527 (Failure to retrieve results when multiple unbuffered, + prepared statements are used in pdo_mysql). (Ilia) - Fixed bug #39458 (ftp_nlist() returns false on empty dirs). (Nuno) - Fixed bug #39454 (Returning a SOAP array segfaults PHP). (Dmitry) - Fixed bug #39445 (Calling debug_backtrace() in the __toString() function

« previous php.cvs (#41828) next »