Я работаю с php и mysql, и вдруг получаю
mysql_data_seek () [function.mysql-data-seek]: смещение 0 недействительно для индекса результата MySQL 64 (или данные запроса не загружены)
- Создание лидеров, как я буду показывать показ ранга / позиции?
- Разделить записи на две колонки
- Почему этот сложный MySQL-запрос не работает?
- mysql_real_escape_string () ничего не ускользает
- Ошибка PHP: «Не удается передать параметр 2 по ссылке»
- mysql query - сообщения в блогах и комментарии с ограничением
Что это значит.
Я не знаю, с чего начать отлаживать этот.
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()