2011-03-03 119 views
0

我是mysqli的新手,所以..我怎麼才能使這個工作?mysqli php問題

class Database { 

    public $mysqli; 

    public function connect() { 
     $this->mysqli = new mysqli('localhost', 'root', '', 'hltv'); 
    } 

    public function sqlQuery() { 
     if($rows = $this->mysqli->query("SELECT * FROM users")) { 
      echo $rows->numRows(); 
     } 
    } 


} 

說,致命錯誤:調用未定義方法mysqli_result :: numRows行()在C:\ XAMPP \ htdocs中\ hltv_new \包括\上線18

+2

我強烈建議使用PHP的PDO,而不是寫周圍的mysqli自己天真的包裝。 – 2011-03-03 02:30:34

回答

-1

num_rows數據庫\ config.php中是一個屬性的MySQLi_Result,而不是一種方法(ed:也沒有方法名爲numRows)。

http://www.php.net/manual/en/class.mysqli-result.php

編輯

這是最好的,因爲它的價值取決於您是否使用緩衝或無緩衝的結果集(見http://www.php.net/manual/en/mysqli-result.num-rows.php)變化不依賴於num_rows財產。

最好的辦法是發出一個SELECT COUNT(1) ...查詢,使用相同的子句和連接來確定正確的行數。

+0

有一個num_rows屬性,而不是一個numRows屬性。不建議發佈額外的查詢來獲得結果集的大小... – 2011-03-03 02:29:03

+0

@Dan Typo修復 – Phil 2011-03-03 02:31:01

+0

@Dan爲什麼不發出額外的查詢?這是確定結果集大小的唯一可靠方法。如果使用PDO,它甚至在[手冊](http://www.php.net/manual/en/pdostatement.rowcount.php)中具體說明了這一點。 – Phil 2011-03-03 02:34:44