mysqli - $stmt->num_rows retour 0
je suis à la recherche pour compter le nombre d'enregistrements renvoyés par la requête ci-dessous à l'aide de mysqli /préparées:
$mysql = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem connecting to the database');
$stmt = $mysql->prepare('SELECT id,vcref,jobtitle,jobtype,jobintro,closingdate FROM jobs WHERE active = 1');
$stmt->execute();
$stmt->store_result;
$stmt->bind_result($id,$vcref,$jobtitle,$jobtype,$jobintro,$closingdate);
$stmt->fetch();
$totalLiveJobs = $stmt->num_rows();
La sortie est toujours 0
Combien faut-il de retour si vous exécutez directement dans la DB?
je sais qu'il y a 2 lignes correspondant aux critères de la requête - c'est un penseur
je sais qu'il y a 2 lignes correspondant aux critères de la requête - c'est un penseur
OriginalL'auteur Aaron Bentley | 2009-10-20
Vous devez vous connecter pour publier un commentaire.
Vous utilisez
mysql_stmt_num_rows
dans la programmation orientée objet, de style, de sorte que l'appelant comme une fonction est incorrect. Essayez:au lieu de:
Fondamentalement, vous essayez d'obtenir cette valeur:
Aussi,
Devrait être:
Non, $stmt->num_rows() est l'appel d'une inexistante méthode de $stmt, alors que $stmt->num_rows références de la propriété (qui n'ont de valeur). Voir phpbuilder.com/manual/en/function.mysqli-stmt-num-rows.php
Thx Karim - je comprends maintenant, (extra bravo pour le lien aussi). Ça fonctionne très bien maintenant - merci encore une fois mate 🙂
Je sais que c'est un vieux thread, mais en réalité, il existe une méthode num_rows() dans mysqli_stmt classe, de sorte que vous pouvez utiliser à la fois $stmt->num_rows (comme propriété de l'objet) ou $stmt->num_rows() (méthode). Je pense que le problème était $stmt->store_result; php.net/manual/en/mysqli-stmt.num-rows.php indique store_result() doit être appelée pour obtenir le nombre de lignes dans le jeu de résultats (sauf si cela a été introduit plus tard que la question a été posté 🙂
OriginalL'auteur karim79