iliaa Fri Dec 8 19:50:41 2006 UTC
Modified files: (Branch: PHP_5_2)
/php-src/ext/pdo_mysql mysql_statement.c mysql_driver.c
/php-src/ext/pdo pdo_stmt.c
/php-src/ext/pdo_mysql/tests pecl_bug_5780.phpt
/php-src NEWS
Log:
Fixed bug #39759 (Can't use stored procedures fetching multiple result
sets in pdo_mysql).
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_mysql/mysql_statement.c?r1=1.48.2.14.2.1&r2=1.48.2.14.2.2&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.2.1
php-src/ext/pdo_mysql/mysql_statement.c:1.48.2.14.2.2
--- php-src/ext/pdo_mysql/mysql_statement.c:1.48.2.14.2.1 Sat Dec 2
17:53:43 2006
+++ php-src/ext/pdo_mysql/mysql_statement.c Fri Dec 8 19:50:40 2006
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_statement.c,v 1.48.2.14.2.1 2006/12/02 17:53:43 iliaa Exp $ */
+/* $Id: mysql_statement.c,v 1.48.2.14.2.2 2006/12/08 19:50:40 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -273,15 +273,15 @@
/* No more results */
return 0;
} else {
- if ((my_ulonglong)-1 == (row_count =
mysql_affected_rows(H->server))) {
- pdo_mysql_error_stmt(stmt);
- return 0;
- }
-
if (!H->buffered) {
S->result = mysql_use_result(H->server);
+ row_count = 0;
} else {
S->result = mysql_store_result(H->server);
+ if ((my_ulonglong)-1 == (row_count =
mysql_affected_rows(H->server))) {
+ pdo_mysql_error_stmt(stmt);
+ return 0;
+ }
}
if (NULL == S->result) {
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_mysql/mysql_driver.c?r1=1.59.2.13.2.2&r2=1.59.2.13.2.3&diff_format=u
Index: php-src/ext/pdo_mysql/mysql_driver.c
diff -u php-src/ext/pdo_mysql/mysql_driver.c:1.59.2.13.2.2
php-src/ext/pdo_mysql/mysql_driver.c:1.59.2.13.2.3
--- php-src/ext/pdo_mysql/mysql_driver.c:1.59.2.13.2.2 Sun Dec 3 23:29:03 2006
+++ php-src/ext/pdo_mysql/mysql_driver.c Fri Dec 8 19:50:40 2006
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_driver.c,v 1.59.2.13.2.2 2006/12/03 23:29:03 iliaa Exp $ */
+/* $Id: mysql_driver.c,v 1.59.2.13.2.3 2006/12/08 19:50:40 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -471,7 +471,7 @@
dbh->driver_data = H;
H->max_buffer_size = 1024*1024;
- H->emulate_prepare = 1;
+ H->buffered = H->emulate_prepare = 1;
/* handle MySQL options */
if (driver_options) {
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_stmt.c?r1=1.118.2.38.2.11&r2=1.118.2.38.2.12&diff_format=u
Index: php-src/ext/pdo/pdo_stmt.c
diff -u php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.11
php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.12
--- php-src/ext/pdo/pdo_stmt.c:1.118.2.38.2.11 Mon Dec 4 03:07:44 2006
+++ php-src/ext/pdo/pdo_stmt.c Fri Dec 8 19:50:40 2006
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_stmt.c,v 1.118.2.38.2.11 2006/12/04 03:07:44 iliaa Exp $ */
+/* $Id: pdo_stmt.c,v 1.118.2.38.2.12 2006/12/08 19:50:40 iliaa Exp $ */
/* The PDO Statement Handle Class */
@@ -1932,10 +1932,6 @@
static int pdo_stmt_do_next_rowset(pdo_stmt_t *stmt TSRMLS_DC)
{
- if (!stmt->methods->next_rowset(stmt TSRMLS_CC)) {
- return 0;
- }
-
/* un-describe */
if (stmt->columns) {
int i;
@@ -1949,6 +1945,10 @@
stmt->column_count = 0;
}
+ if (!stmt->methods->next_rowset(stmt TSRMLS_CC)) {
+ return 0;
+ }
+
pdo_stmt_describe_columns(stmt TSRMLS_CC);
return 1;
@@ -1969,8 +1969,6 @@
PDO_HANDLE_STMT_ERR();
RETURN_FALSE;
}
-
- pdo_stmt_describe_columns(stmt TSRMLS_CC);
RETURN_TRUE;
}
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_mysql/tests/pecl_bug_5780.phpt?r1=1.1.2.1.2.1&r2=1.1.2.1.2.2&diff_format=u
Index: php-src/ext/pdo_mysql/tests/pecl_bug_5780.phpt
diff -u php-src/ext/pdo_mysql/tests/pecl_bug_5780.phpt:1.1.2.1.2.1
php-src/ext/pdo_mysql/tests/pecl_bug_5780.phpt:1.1.2.1.2.2
--- php-src/ext/pdo_mysql/tests/pecl_bug_5780.phpt:1.1.2.1.2.1 Mon Jul 31
20:14:40 2006
+++ php-src/ext/pdo_mysql/tests/pecl_bug_5780.phpt Fri Dec 8 19:50:40 2006
@@ -33,10 +33,8 @@
[1]=>
string(7) "testing"
}
-bool(false)
-array(2) {
+bool(true)
+array(1) {
[0]=>
- string(5) "HY000"
- [1]=>
- int(2014)
+ string(5) "00000"
}
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.413&r2=1.2027.2.547.2.414&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.413 php-src/NEWS:1.2027.2.547.2.414
--- php-src/NEWS:1.2027.2.547.2.413 Fri Dec 8 17:50:03 2006
+++ php-src/NEWS Fri Dec 8 19:50:40 2006
@@ -52,6 +52,8 @@
- Fixed bug #39775 ("Indirect modification ..." message is not shown). (Dmitry)
- Fixed bug #39763 (magic quotes are applied twice by ext/filter in
parse_str()). (Ilia)
+- Fixed bug #39759 (Can't use stored procedures fetching multiple result
+ sets in pdo_mysql). (Ilia)
- Fixed bug #39754 (Some POSIX extension functions not thread safe).
(Ilia, wharmby at uk dot ibm dot com)
- Fixed bug #39724 (Broken build due to spl/filter usage of pcre extension).
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php