在PHP中,我使用mysqli从数据库中获取结果集。在获取结果集后,我将其移交给返回对象的函数。 给出结果集:
为什么这个功能:
/**
* @param resource|\mysqli_result $result
* @return array|bool
*/
public static function getObjectArray($result) {
if($result === FALSE) {
return FALSE;
}
$func = ((gettype($result) === 'resource') ? 'mysql' : 'mysqli') . '_fetch_object';
$array = array();
while($row = $func($result)) {
$array[] = $row;
}
return $array;
}
返回一个空数组。调试时,它只是跳过while循环的主体。这个功能在数百个其他地方都没有问题,但是使用这个特殊的结果集,它就会崩溃。
提前致谢。
答案 0 :(得分:0)
我不知道它的细节,但似乎结果集是某种隐式的引用传递。我将其分解为正在破坏并运行一些测试的部分,即使我将结果集作为参数传递给函数,它也将原始的data_seek设置为结尾。我在传入的结果集上重置了它,它工作正常。如果有人对实际发生的事情有任何了解,我希望能有更深入的了解。
由于