mysqli num_rows が一貫してゼロを返す
質問:
MySQLi の prepare、bind_param を使用する場合、 num_rows、bind_result、およびデータベースから行を取得するための fetch メソッドですが、num_rows が常に 0 を返すのはなぜですか?
答え:
MySQLi 呼び出しの使用法が間違っています。この問題を解決するには、行数を取得する前に次の手順を実行します。
$stmt->execute(); $stmt->store_result();
mysqli_stmt::num_rows が正しく動作するには、store_result() の呼び出しが不可欠です。
こちらこれは、store_result() 呼び出しが追加された改訂されたコード スニペットです:
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(); }
を参照してください。詳細については、mysqli_stmt::num_rows の公式ドキュメントを参照してください。
以上が「prepare」、「bind_param」、「bind_result」、「fetch」を使用した後、「mysqli_stmt::num_rows」が一貫してゼロを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。