Mengapa mysqli_stmt::num_rows Saya Sentiasa Mengembalikan 0?
Apabila cuba mendapatkan semula bilangan baris yang dikembalikan oleh pertanyaan MySQL menggunakan mysqli_stmt ::num_rows, pengguna mungkin menghadapi pengembalian 0 secara konsisten, walaupun wujud sebenar keputusan. Untuk menangani isu ini, adalah penting untuk memanggil fungsi mysqli_stmt::store_result() sebelum num_rows.
Kod berikut menggambarkan penggunaan yang betul:
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 } echo($num_of_rows); $stmt->close(); }
Seperti yang dinyatakan dalam rasmi Dokumentasi MySQL untuk mysqli_stmt::num_rows, "[...] Bilangan baris dalam set hasil boleh ditemui dengan memanggil kaedah num_rows Ini mesti dilakukan selepas memanggil store_result." Dengan memasukkan panggilan mysqli_stmt::store_result(), set hasil disimpan dalam klien, membolehkan penentuan tepat bilangan baris.
Atas ialah kandungan terperinci Mengapakah `mysqli_stmt::num_rows` Sentiasa Mengembalikan 0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!