Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menangani Kegagalan Pertanyaan Apabila Menggunakan Sambungan MySQL PHP?

Bagaimanakah Saya Boleh Menangani Kegagalan Pertanyaan Apabila Menggunakan Sambungan MySQL PHP?

Patricia Arquette
Lepaskan: 2024-12-29 12:50:15
asal
712 orang telah melayarinya

How Can I Handle Query Failures When Using PHP's MySQL Extensions?

Mengendalikan Kegagalan Pertanyaan dalam PHP MySQL Extensions

Apabila cuba mengekstrak data daripada jadual MySQL, kadangkala, ralat seperti "mysql_fetch_array() menjangkakan parameter 1 sebagai sumber, boolean diberikan" mungkin timbul. Ralat ini menunjukkan bahawa fungsi pertanyaan gagal, menyebabkan nilai boolean ("false") dan bukannya pemegang sumber yang dijangkakan.

Dalam kod PHP yang disediakan:

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}
Salin selepas log masuk

Ralat berlaku kerana fungsi pertanyaan (mysql_query) boleh mengembalikan sama ada benar apabila pelaksanaan berjaya atau palsu sekiranya berlaku kegagalan. Perlu diingatkan bahawa pernyataan SQL yang disediakan mungkin gagal disebabkan oleh pelbagai sebab, seperti sintaks tidak sah atau jadual tidak wujud.

Untuk menyelesaikannya, anda harus menyemak hasil fungsi pertanyaan sebelum cuba mengambil baris menggunakan mysql_fetch_array. Jika $result menilai kepada false, ini menandakan bahawa pertanyaan itu gagal dan anda harus mengendalikan ralat itu dengan sewajarnya.

Untuk Sambungan MySQL yang Dihentikan:

  • Gunakan mysql_error untuk mendapatkan semula mesej ralat yang dikaitkan dengan kegagalan pertanyaan.
  • Anda boleh memilih untuk mengeluarkan mesej ralat mesra pengguna atau log ralat untuk nyahpepijat.
if($result === FALSE) {
    trigger_error(mysql_error(), E_USER_ERROR);
}
Salin selepas log masuk

Untuk Sambungan MySQLi:

  • Semak sifat mysqli_errno bagi objek mysqli untuk mendapatkan kod ralat.
  • Gunakan mysqli_error untuk mendapatkan semula ralat mesej.
  • Kendalikan ralat mengikut kesesuaian.
if($result->errno) {
    // Log or output the error message
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangani Kegagalan Pertanyaan Apabila Menggunakan Sambungan MySQL PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan