Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 偏移量0对于MySQL结果索引64无效(或查询数据未缓冲)_Php_Mysql - Fatal编程技术网

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

Php 偏移量0对于MySQL结果索引64无效(或查询数据未缓冲),php,mysql,Php,Mysql,我正在使用php和mysql,突然之间 mysql_data_seek()[function.mysql data seek]:偏移量0对于mysql结果索引64无效(或者查询数据未缓冲) 这意味着什么 我不知道从哪里开始调试这个 该类被传递一个mysql资源到它的构造函数中 class dbResult { private $result; private $num_rows; function __construct($result) { $th

我正在使用php和mysql,突然之间

mysql_data_seek()[function.mysql data seek]:偏移量0对于mysql结果索引64无效(或者查询数据未缓冲)

这意味着什么

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


该类被传递一个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\u data\u seek()
将失败并发出
E\u警告。我认为这是在您的情况下发生的,因为在调用
mysql\u data\u seek()
之前,您没有检查结果集是否为空


如果行数>=1,请始终检查结果,然后您可以安全地调用
mysql\u data\u seek()

对不起,添加了代码,但点击文本框外的退格按钮,再次添加代码。在调用mysql\u data\u seek之前,请始终检查mysql\u num\u rows(result)>=1。可能是结果集为空您不能从零开始:QOUTE:“对0的搜索将失败,并显示E_警告,mysql_data_seek()将返回FALSE”删除@before
mysql_data_seek
,调用
错误报告(E_ALL)在脚本开始处-如果需要,还可以添加
ini\u集(“显示错误”,1)。现在,您将看到错误被转储到屏幕上(或者您也可以记录它们)。我猜您正在将一个空结果集传递给dbResult->result()调用@沙克蒂·辛格愿意把你的评论作为详细的回答吗?