Apabila menulis program PHP, penyahpepijatan dan pengendalian ralat SQL adalah tugas yang sangat penting. Ralat SQL mungkin berlaku semasa operasi pertanyaan, sisip, kemas kini atau padam, dan jika ralat ini tidak ditangani dengan segera, ia boleh menyebabkan pengecualian atau ranap aplikasi. Artikel ini akan menerangkan cara mengeluarkan ralat SQL dalam PHP untuk pemprosesan segera.
Dalam PHP, mesej ralat SQL tidak dikeluarkan secara lalai dan pelaporan ralat perlu dihidupkan secara manual. Kami boleh menetapkan pilihan error_reporting dan display_errors dengan mengubah suai fail php.ini. Contohnya:
error_reporting = E_ALL display_errors = On
Selepas menetapkan pilihan ini kepada nilai yang sepadan, PHP akan mengeluarkan mesej ralat pada halaman.
Jika anda tidak boleh mengubah suai fail php.ini pada masa ini, anda boleh menggunakan fungsi ini_set untuk menetapkan pilihan pelaporan ralat dalam program PHP anda. Contohnya:
ini_set('error_reporting', E_ALL); ini_set('display_errors', 'On');
Dalam persekitaran pembangunan, adalah disyorkan untuk menetapkan pelaporan ralat kepada maksimum supaya masalah dapat ditemui dan diselesaikan tepat pada masanya.
Apabila melaksanakan pertanyaan SQL dalam PHP, masalah seperti ralat sintaks, konflik kunci utama dan hasil pertanyaan kosong mungkin berlaku. Pada masa ini, kita boleh mengeluarkan maklumat ralat melalui fungsi mysqli_error. Contohnya:
$sql = "SELECT id, name FROM users WHERE age > 18"; $result = mysqli_query($conn, $sql); if (!$result) { die(mysqli_error($conn)); }
Dalam contoh ini, jika ralat berlaku dalam pertanyaan, mesej ralat akan dikeluarkan. Kami boleh mengesan ralat pertanyaan SQL dengan cara ini untuk memudahkan penyahpepijatan.
Selain operasi pertanyaan, ralat juga mungkin berlaku dalam operasi sisipan, kemas kini dan padam. Sebagai contoh, apabila memasukkan sekeping data, sisipan mungkin gagal disebabkan konflik kunci utama atau sebab lain. Pada masa ini, kita boleh menggunakan fungsi mysqli_affected_rows untuk menentukan bilangan baris yang terjejas untuk menentukan sama ada operasi itu berjaya. Jika bilangan baris yang terjejas ialah 0, terdapat masalah dengan operasi. Contohnya:
$sql = "INSERT INTO users (name, age) VALUES ('John', 18)"; mysqli_query($conn, $sql); if (mysqli_affected_rows($conn) == 0) { die("Insert failed: " . mysqli_error($conn)); }
Dalam contoh ini, mesej ralat akan dikeluarkan jika sisipan gagal. Begitu juga, kita juga boleh menggunakan fungsi mysqli_affected_rows untuk mengendalikan ralat untuk operasi kemas kini dan pemadaman.
Apabila menyambung ke pangkalan data dalam PHP, ralat juga mungkin berlaku, seperti tidak dapat menyambung ke pangkalan data, nama pangkalan data yang salah, salah nama pengguna atau kata laluan dan lain-lain soalan. Pada masa ini kita boleh menggunakan fungsi mysqli_connect_errno dan mysqli_connect_error untuk mengeluarkan maklumat ralat. Contohnya:
$conn = mysqli_connect($host, $user, $password, $dbname); if (mysqli_connect_errno()) { die("Failed to connect to MySQL: " . mysqli_connect_error()); }
Dalam contoh ini, jika sambungan ke pangkalan data gagal, mesej ralat akan dikeluarkan.
Selain kaedah di atas, apabila kami menulis program PHP, kami juga boleh mengoptimumkan kod dengan cara berikut:
Ringkasnya, dalam pengaturcaraan PHP, pengesanan tepat pada masanya dan pengendalian ralat SQL adalah sangat penting untuk memastikan operasi normal atur cara. Saya harap kaedah yang diperkenalkan dalam artikel ini dapat membantu anda dalam mengendalikan ralat SQL dalam pembangunan PHP.
Atas ialah kandungan terperinci ralat sql output php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!