Rumah >pembangunan bahagian belakang >tutorial php >Mengapa saya mendapat ralat 'Panggilan ke kaedah yang tidak ditentukan mysqli_stmt::get_result()'?
"mysqli_stmt::get_result()" panggilan kaedah isu tidak ditentukan
Semasa cuba menggunakan kaedah "get_result()" daripada "mysqli_stmt" Apabila mendapatkan hasil pertanyaan dalam objek, "Panggil kaedah tidak ditentukan" muncul. mysqli_stmt::get_result()" ralat.
Punca masalah:
Ralat menunjukkan bahawa kaedah "get_result()" tidak tersedia untuk objek "mysqli_stmt". Ini mungkin disebabkan oleh pemacu "mysqlnd" yang hilang.
Penyelesaian:
Pasang pemacu mysqlnd:
Pemandu ini berguna untuk menggunakan " get_result ()" kaedah adalah penting. Sila pastikan ia dipasang pada ruang web anda.
Gunakan bind_result() dan fetch():
Jika anda tidak boleh memasang pemacu "mysqlnd", anda boleh menggunakan "bind_result() kaedah ” dan “fetch()” untuk mendapatkan hasil pertanyaan. Kaedah ini tidak dipengaruhi oleh pemacu "mysqlnd". Kod sampel adalah seperti berikut:
$stmt->bind_result($emailVerified, $blocked); $stmt->fetch();
Semak mysqli_stmt->execute() Nilai pulangan:
Pastikan kaedah "mysqli_stmt->execute()" telah berjaya dilaksanakan. Jika ia mengembalikan "false", tiada hasil akan ditetapkan untuk objek "stmt".
Contoh:
Berikut ialah kod diubah suai yang telah menyelesaikan masalah:
include 'conn.php'; $conn = new Connection(); $query = 'SELECT EmailVerified, Blocked FROM users WHERE Email = ? AND SLA = ? AND `Password` = ?'; $stmt = $conn->mysqli->prepare($query); $stmt->bind_param('sss', $_POST['EmailID'], $_POST['SLA'], $_POST['Password']); if ($stmt->execute()) { $stmt->bind_result($emailVerified, $blocked); $stmt->fetch(); // Use $emailVerified and $blocked here... } else { echo "Error executing statement: " . $stmt->error; }
Atas ialah kandungan terperinci Mengapa saya mendapat ralat 'Panggilan ke kaedah yang tidak ditentukan mysqli_stmt::get_result()'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!