Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `mysqli_stmt::num_rows` Sentiasa Mengembalikan 0?

Mengapakah `mysqli_stmt::num_rows` Sentiasa Mengembalikan 0?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 06:57:10606semak imbas

Why Does `mysqli_stmt::num_rows` Always Return 0?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn