0

我正在做一个小项目,但不幸的是,我的主机不支持包 mysqldn,因此我无法使用fetch_all()功能。这是让我头疼的代码块。

public function fetch($type = 'object')
{
    if (isset($this->result))
    {
        switch ($type)
        {
            case 'array':

                //fetch a row as array
                //$row = $this->result->fetch_all();
                $rows = array();
                while($row = $this->result->fetch_assoc())
                {
                    $rows[] = $row;
                }
            break;

            case 'object':

            //fall through...

            default:

                //fetch a row as object
                $row = $this->result->fetch_object();   

            break;
        }

        return $rows;
    }

    return FALSE;
}

正如我之前所说,我无法fetch_all()在当前主机上使用功能。因此,有没有替代该功能的方法?我能做些什么?

4

1 回答 1

0

本机 mysqli->fetch() 函数将返回结果集中的下一行,直到它到达末尾。

如果您只想获取下一行,只需调用一次,或者如果您想获取所有行,则可以将其包含在循环中,例如

while($row = $this->result->fetch())
{
    //Do something with $row
}

编辑:这仅与为准备好的语句获取结果有关,并且仅在执行准备好的语句后 $this->result 保存 store_result() 的结果时才有效。

于 2013-05-15T05:26:31.323 回答