2011-03-03 3 views
0

Je suis nouveau à mysqli alors .. comment puis-je obtenir ce travail?mysqli php problème

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(); 
     } 
    } 


} 

dit, l'erreur irrécupérable: appel de la méthode définie mysqli_result :: numRows() dans C: \ xampp \ htdocs \ hltv_new \ base de données comprend \ \ config.php sur la ligne 18

+2

Je recommande fortement d'utiliser PDO de PHP au lieu d'écrire votre propre emballage naïve autour mysqli. –

Répondre

-1

num_rows est une propriété de MySQLi_Result, pas une méthode (ed: il n'y a pas non plus de méthode nommée numRows).

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

Modifier

Il est préférable de ne pas compter sur la propriété num_rows que sa valeur varie selon que vous utilisez des jeux de résultats bufferisés ou non (voir http://www.php.net/manual/en/mysqli-result.num-rows.php).

La meilleure solution consiste à émettre une requête SELECT COUNT(1) ... en utilisant les mêmes clauses et les mêmes jointures pour déterminer le nombre de lignes correct.

+0

Il existe une propriété num_rows, pas une propriété numRows. Ne recommandez pas d'émettre des requêtes supplémentaires pour obtenir la taille d'un ensemble de résultats ... –

+0

@Dan Typo fixe – Phil

+0

@Dan Pourquoi ne pas émettre une requête supplémentaire? C'est le seul moyen fiable de déterminer la taille d'un ensemble de résultats. Si vous utilisez PDO, il le dit même spécifiquement dans le [manuel] (http://www.php.net/manual/en/pdostatement.rowcount.php) – Phil