Maison > développement back-end > tutoriel php > Pourquoi `mysqli_stmt::num_rows` renvoie-t-il systématiquement zéro après avoir utilisé `prepare`, `bind_param`, `bind_result` et `fetch` ?

Pourquoi `mysqli_stmt::num_rows` renvoie-t-il systématiquement zéro après avoir utilisé `prepare`, `bind_param`, `bind_result` et `fetch` ?

DDD
Libérer: 2024-12-08 05:43:09
original
309 Les gens l'ont consulté

Why Does `mysqli_stmt::num_rows` Consistently Return Zero After Using `prepare`, `bind_param`, `bind_result`, and `fetch`?

mysqli num_rows renvoie systématiquement zéro

Question :

Lors de l'utilisation de la préparation, bind_param de MySQLi, méthodes num_rows, bind_result et fetch pour récupérer les lignes d'une base de données, pourquoi num_rows renvoie-t-il toujours 0 ?

Réponse :

Utilisation incorrecte des appels MySQLi. Pour résoudre ce problème, exécutez les étapes suivantes avant de récupérer le nombre de lignes :

$stmt->execute();
$stmt->store_result();
Copier après la connexion

L'appel à store_result() est essentiel pour que mysqli_stmt::num_rows fonctionne correctement.

Ici est un extrait de code révisé avec l'appel store_result() ajouté :

if ($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")) {
    $stmt->bind_param('s', $data->id);
    $stmt->execute();
    $stmt->store_result();
    $num_of_rows = $stmt->num_rows;
    $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent);

    while ($stmt->fetch()) {
        // Code here
    }

    echo($num_of_rows);

    $stmt->close();
}
Copier après la connexion

Veuillez vous référer à la documentation officielle pour mysqli_stmt::num_rows pour plus de détails.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal