php mysqli:如果data_seek()是setter,getter是......?

时间:2012-11-10 08:46:47

标签: php mysqli

如果data_seek是结果集的指针设置器,有没有办法获取当前行?

SELECT * FROM xxx ORDER BY RAND() LIMIT 0,10

$m->data_seek(9); // last item

$last = $m->fetch_object();

echo $m->........; // must echo 9

1 个答案:

答案 0 :(得分:1)

据我所知,没有本地方法可以做到这一点,但你可以扩展mysqli_result以实现这样的功能...这也迫使你扩展主要的mysqli类。

  • $ result-> current_field仅在您获得现场信息时才有效 使用$ result-> fetch_field()
对于结果类

类似这样的内容

class extended_mysqli_result extends mysqli_result
{
    public $last_seek = 0;

    public function data_seek($offset = 0)
    {
        parent::data_seek($this->last_seek = $offset);
    }
}

等主要类

class extended_mysqli extends mysqli
{
    public function query( $query )
    {
        if ( $this->real_query($query) )
        {
            if ( $this->field_count )
            {
                return new extended_mysqli_result($this);
            }
            else return true;
        }
        else return false;
    }
}