2011-03-03 118 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