我正在使用 php 和 mysql,突然我明白了
mysql_data_seek() [function.mysql-data-seek]:偏移量0对于MySQL结果索引64无效(或者查询数据未缓冲)
这是什么意思。
我不知道从哪里开始调试这个。
This class is passed a mysql resource into it's constructor
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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)