Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengeluarkan log ralat MySQL dalam PHP

Bagaimana untuk mengeluarkan log ralat MySQL dalam PHP

PHPz
PHPzasal
2023-04-04 09:13:03808semak imbas

PHP ialah bahasa pengaturcaraan sebelah pelayan yang popular digunakan secara meluas untuk pembangunan aplikasi web. MySQL ialah pangkalan data hubungan kuat yang digunakan secara meluas. Menyambung ke pangkalan data MySQL dan melaksanakan pertanyaan adalah tugas biasa dalam aplikasi PHP, tetapi ralat juga biasa. Untuk menyelesaikan masalah, kita perlu log ralat. Artikel ini akan memperkenalkan cara untuk mengeluarkan log ralat MySQL dalam PHP.

1. Hidupkan log ralat

Sebelum mengeluarkan log ralat MySQL dalam PHP, kita perlu memastikan bahawa fungsi log ralat MySQL dihidupkan. Pelayan MySQL memulakan log ralat apabila ia bermula, tetapi maklumat ralat mungkin tidak dilog ke fail log secara lalai. Untuk menghidupkan ciri pengelogan ralat, edit fail konfigurasi MySQL my.cnf (biasanya terletak di /etc/mysql/my.cnf) dan pastikan parameter berikut ditetapkan kepada yang berikut:

log-error=/var/log/mysql/error.log

Laluan dan nama yang diubah suai di sini hendaklah ditukar mengikut persediaan sistem sebenar anda. Jika aplikasi PHP anda menggunakan localhost dengan contoh pelayan MySQLnya sendiri, tetapan ini akan membolehkan pengelogan ralat pelayan. Jika aplikasi anda menggunakan pelayan jauh, anda perlu menyediakannya pada pelayan MySQL.

2. Sambung ke MySQL

Menyambung ke MySQL dalam aplikasi PHP adalah langkah yang perlu, kita perlu memastikan sambungan MySQL diwujudkan dengan betul. Berikut ialah contoh asas untuk menyambung ke MySQL:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database_name");
if ($mysqli -> connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
    exit();
}
?>

Sila ambil perhatian bahawa contoh ini menggunakan sambungan mysqli berorientasikan objek untuk sambungan MySQL. Untuk menyambung ke MySQL menggunakan sambungan berorientasikan prosedur, sila lihat dokumentasi rasmi. Jika sambungan ke MySQL gagal, mesej ralat harus dikeluarkan dan aplikasi harus keluar. Jika tidak, kami boleh terus melaksanakan pertanyaan.

3. Laksanakan pertanyaan

Sebelum melaksanakan pertanyaan MySQL, kita perlu menetapkan mod ralat MySQL untuk mencetuskan ralat PHP. Dengan cara ini, kita boleh menggunakan pengendali ralat PHP untuk log ralat MySQL. Begini cara untuk menyediakan kod yang mencetuskan ralat PHP:

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// rest of the code
?>

Kini, apabila ralat berlaku dengan pertanyaan MySQL, ralat PHP akan dicetuskan. Kita boleh menggunakan pengendali ralat PHP untuk log ralat. Berikut ialah contoh asas pengendalian ralat:

<?php
try {
    $result = $mysqli -> query("SELECT * FROM table_name");
} catch (mysqli_sql_exception $e) {
    error_log($e -> getMessage());
    exit();
}
?>

Apabila ralat berlaku dengan pertanyaan MySQL, kami akan mendapat pengecualian mysqli_sql_exception. Kita boleh mendapatkan mesej pengecualian menggunakan kaedah getMessage() dan menulisnya ke fail log ralat menggunakan fungsi error_log() terbina dalam PHP.

4. Contoh kod lengkap

Sekarang kita boleh menggabungkan semua kod bersama untuk mengeluarkan log ralat MySQL. Berikut ialah kod sampel:

<?php
$mysqli = new mysqli("localhost", "username", "password", "database_name");
if ($mysqli -> connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
    exit();
}
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    $result = $mysqli -> query("SELECT * FROM table_name");
} catch (mysqli_sql_exception $e) {
    error_log($e -> getMessage());
    exit();
}
?>

Dalam contoh ini, kami cuba menanyakan semua baris dalam jadual. Jika ralat berlaku dalam pertanyaan, pengecualian mysqli_sql_exception akan dicetuskan. Kami mendapat mesej pengecualian menggunakan kaedah getMessage() dan menulisnya ke fail log ralat menggunakan fungsi error_log().

Ringkasan

Mengoutputkan log ralat MySQL dalam aplikasi PHP adalah penting kerana ia membantu kami memahami masalah dan menyelesaikannya. Dalam artikel ini, kami membincangkan cara menghidupkan ciri pengelogan ralat MySQL, menyambung ke pelayan MySQL, melaksanakan pertanyaan dan log ralat MySQL menggunakan pengendali ralat PHP. Semak fail log ralat dengan kerap untuk mengenal pasti masalah dan menyelesaikannya dengan segera.

Atas ialah kandungan terperinci Bagaimana untuk mengeluarkan log ralat MySQL dalam PHP. 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