mysqli num_rows Secara Konsisten Mengembalikan Sifar
Soalan:
Apabila menggunakan MySQLi's prepare, bind_param num_rows, bind_result, dan kaedah fetch untuk dapatkan baris daripada pangkalan data, mengapakah num_rows sentiasa mengembalikan 0?
Jawapan:
Penggunaan panggilan MySQLi yang salah. Untuk menyelesaikan isu ini, laksanakan langkah berikut sebelum mengambil bilangan baris:
$stmt->execute(); $stmt->store_result();
Panggilan ke store_result() adalah penting untuk mysqli_stmt::num_rows berfungsi dengan betul.
Di sini ialah coretan kod yang disemak dengan panggilan store_result(). ditambah:
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(); }
Sila rujuk dokumentasi rasmi untuk mysqli_stmt::num_rows untuk butiran lanjut.
Atas ialah kandungan terperinci Mengapakah `mysqli_stmt::num_rows` Mengembalikan Sifar Secara Konsisten Selepas Menggunakan `prepare`, `bind_param`, `bind_result` dan `fetch`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!