Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysqli while循环在明显非空的resultset上返回空数组_Php_Mysql_Mysqli - Fatal编程技术网

Php Mysqli while循环在明显非空的resultset上返回空数组

Php Mysqli while循环在明显非空的resultset上返回空数组,php,mysql,mysqli,Php,Mysql,Mysqli,在PHP中,我使用mysqli从数据库中获取结果集。获取结果集后,我将其交给一个函数,该函数返回一个对象。 给定结果集: 为什么这个功能: /** * @param resource|\mysqli_result $result * @return array|bool */ public static function getObjectArray($result) { if($result === FALSE) {

在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循环的主体。这个函数在数百个其他地方都可以正常工作,但是有了这个特殊的结果集,它就失败了


提前谢谢。

我不知道它的详细信息,但结果集似乎是某种隐式的按引用传递。我将其分解为正在分解的部分并运行了一些测试,即使我将结果集作为参数传递给函数,它也会将原始的数据设置为结束。我在传入的结果集上重置了它,它工作正常。如果有人对实际发生的事情有任何见解,我很想有更深入的了解


谢谢

我得到了一个提示,请使用
is\u resource
检查它是否是一个资源,或者更好地检查它是否是一个MySQLi resultset,而不是
$result instantof MySQLi\u result