Fix for bug #52115 mysqli_result::fetch_all returns null, not an empty array

This commit is contained in:
Andrey Hristov 2010-06-18 17:25:41 +00:00
parent 6b730a04ae
commit 5a4a66cdd5
3 changed files with 12 additions and 7 deletions

2
NEWS
View File

@ -2,6 +2,8 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2010, PHP 5.3.3 RC2
- Fixed the mail.log ini setting when no filename was given. (Johannes)
- Fixed bug #52115 (mysqli_result::fetch_all returns null, not an empty array).
(Andrey)
17 Jun 2010, PHP 5.3.3 RC1
- Upgraded bundled sqlite to version 3.6.23.1. (Ilia)

View File

@ -383,7 +383,8 @@ array(2) {
}
}
[011]
NULL
array(0) {
}
[013]
array(2) {
[0]=>
@ -402,7 +403,8 @@ array(2) {
}
}
[016]
NULL
array(0) {
}
[017]
array(1) {
[0]=>

View File

@ -1568,16 +1568,17 @@ MYSQLND_METHOD(mysqlnd_res, fetch_all)(MYSQLND_RES * result, unsigned int flags,
DBG_INF_FMT("flags=%u", flags);
/* mysqlnd_res::fetch_all works with buffered resultsets only */
if (!set ||
!set->row_count || !set->data_cursor ||
set->data_cursor >= set->data + set->row_count)
{
if (result->unbuf || (!result->unbuf && !set)) {
RETVAL_NULL();
DBG_VOID_RETURN;
}
}
mysqlnd_array_init(return_value, (unsigned int) set->row_count);
if (!set->row_count || !set->data_cursor || set->data_cursor >= set->data + set->row_count) {
DBG_VOID_RETURN;
}
while (set->data_cursor &&
(set->data_cursor - set->data) < (set->row_count * result->meta->field_count))
{