加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 偏移0对MySQL结果索引64无效(或查询数据未缓冲)

发布时间:2020-12-13 13:15:59 所属栏目:PHP教程 来源:网络整理
导读:我正在使用php和 mysql,我突然得到了 mysql_data_seek() [function.mysql-data-seek]: Offset 0 is invalid for MySQL result index 64 (or the query data is unbuffered) 这是什么意思. 我不知道从哪里开始调试这个. 这个类将mysql资源传递给它的构造函数
我正在使用php和 mysql,我突然得到了

mysql_data_seek() [function.mysql-data-seek]: Offset 0 is invalid for MySQL result index 64 (or the query data is unbuffered)

这是什么意思.

我不知道从哪里开始调试这个.

这个类将mysql资源传递给它的构造函数

class dbResult {

    private $result;
    private $num_rows;

    function __construct($result) {
        $this->result = $result;
    }

    function result($type = 'object') {
        @mysql_data_seek($this->result,0);
        if ($type == 'array')
            return mysql_fetch_assoc($this->result);
        if ($type == 'object') {
            if ($this->num_rows() == 1) {
                $data = new stdClass();
                foreach (mysql_fetch_assoc($this->result) as $k => $v)
                    $data->$k = $v;
                return $data;
            }
            if ($this->num_rows() > 1) {
                $data = array();
                while ($result = mysql_fetch_assoc($this->result)) {
                    $row = new stdClass();
                    foreach ($result as $k => $v)
                        $row->$k = $v;
                    $data[] = $row;
                }
                return $data;
            }
            return false;
        }
    }

    function num_rows() {
        return mysql_num_rows($this->result);
    }

    function num_fields() {
        return mysql_num_fields($this->result);
    }

}
如果结果集为空,则mysql_data_seek()将因E_WARNING而失败.这就是我认为发生在你的情况,因为在调用mysql_data_seek()之前你没有检查结果集是否为空.

总是检查结果的行数,如果它们是> = 1,那么你可以安全地调用mysql_data_seek()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读