2011-02-01 12 views
8

tôi đang làm việc với php và mysql và đột nhiên tôi nhận đượcoffset 0 là không hợp lệ cho MySQL kết quả chỉ số 64 (hoặc các dữ liệu truy vấn là không có bộ đệm)

mysql_data_seek() [function.mysql-dữ liệu tìm kiếm]: Offset 0 không hợp lệ đối với chỉ mục kết quả MySQL 64 (hoặc dữ liệu truy vấn không bị chặn)

Điều này có nghĩa là gì.

Tôi không biết bắt đầu gỡ lỗi cái này ở đâu.


Lớp này được thông qua một nguồn lực mysql vào nó của 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); 
    } 

} 
+1

Cách hiển thị một số mã. –

+0

xin lỗi, Đã thêm mã nhưng nhấn nút backspace bên ngoài hộp văn bản, thêm mã một lần nữa. – Hailwood

+2

Trước khi gọi mysql_data_seek luôn kiểm tra mysql_num_rows (kết quả)> = 1. Có thể là tập hợp kết quả trống rỗng –

Trả lời

10

nếu đặt kết quả là rỗng mysql_data_seek() sẽ thất bại với một E_WARNING. Đó là điều tôi nghĩ xảy ra trong trường hợp của bạn bởi vì bạn không kiểm tra xem tập kết quả có trống hay không trước khi gọi số mysql_data_seek().

Luôn kiểm tra kết quả cho số hàng nếu chúng> = 1 thì bạn an toàn để gọi mysql_data_seek()

Các vấn đề liên quan