summaryrefslogtreecommitdiff
path: root/ext/mysqlnd
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2009-08-28 09:30:16 +0000
committerAndrey Hristov <andrey@php.net>2009-08-28 09:30:16 +0000
commit9bf747605df02a95abb80ad0216a39e9059d54e1 (patch)
tree97bb768eae97c264552495a9983e8e44b838e5c9 /ext/mysqlnd
parent5b39f5ca2469fbe24ace7d0138f45e33d283c588 (diff)
downloadphp-git-9bf747605df02a95abb80ad0216a39e9059d54e1.tar.gz
Fix for bug#48745
mysqlnd: mysql_num_fields returns wrong column count for mysql_list_fields
Diffstat (limited to 'ext/mysqlnd')
-rw-r--r--ext/mysqlnd/mysqlnd_result.c2
-rw-r--r--ext/mysqlnd/mysqlnd_result_meta.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/ext/mysqlnd/mysqlnd_result.c b/ext/mysqlnd/mysqlnd_result.c
index bafc0ce064..56969944aa 100644
--- a/ext/mysqlnd/mysqlnd_result.c
+++ b/ext/mysqlnd/mysqlnd_result.c
@@ -431,6 +431,8 @@ MYSQLND_METHOD(mysqlnd_res, read_result_metadata)(MYSQLND_RES *result, MYSQLND *
result->m.free_result_contents(result TSRMLS_CC);
DBG_RETURN(FAIL);
}
+ /* COM_FIELD_LIST is broken and has premature EOF, thus we need to hack here and in mysqlnd_res_meta.c */
+ result->field_count = result->meta->field_count;
/*
2. Follows an EOF packet, which the client of mysqlnd_read_result_metadata()
diff --git a/ext/mysqlnd/mysqlnd_result_meta.c b/ext/mysqlnd/mysqlnd_result_meta.c
index c970749ab6..7a75003927 100644
--- a/ext/mysqlnd/mysqlnd_result_meta.c
+++ b/ext/mysqlnd/mysqlnd_result_meta.c
@@ -166,6 +166,7 @@ MYSQLND_METHOD(mysqlnd_res_meta, read_metadata)(MYSQLND_RES_METADATA * const met
DBG_RETURN(FAIL);
}
if (field_packet.stupid_list_fields_eof == TRUE) {
+ meta->field_count = i + 1;
break;
}