MySQLI ကို PHP တွင်ဒေတာဘေ့စ်စစ်ဆင်ရေးအတွက်အသုံးပြုသောအခါ, သင်မကြာခဏအမှားမက်ဆေ့ခ်ျပုံနှိပ်ရန်လိုအပ်သည့်အခြေအနေများမကြာခဏသင်မကြာခဏတွေ့ဆုံလေ့ရှိသည်။ များသောအားဖြင့် MySQLI extension သည်အမှားအယွင်းများကိုအထောက်အကူပြုရန်အမှားအယွင်းများကိုချက်ချင်းတုံ့ပြန်ချက်ပြ feartback ပြ problems နာများကိုအထောက်အကူပြုရန် MySQLI ::: MySQLI :: $ error ) ကိုပေးသည်။ သို့သော်အမှားမှတ်တမ်းကိုရှင်းလင်းရန်နှင့် Debug သို့ပိုမိုလွယ်ကူစေရန်ဤအမှားမက်ဆေ့ခ်ျများကိုလျောက်ပတ်စွာမည်သို့ပုံနှိပ်ထုတ်ဝေမည်နည်း။ ဤဆောင်းပါးသည် MySQLI :: PHP တွင်အမှားကုဒ်များနှင့်အမှားအယွင်းများကိုပုံနှိပ်ရန် $ errno ကို လျောက်ပတ်စွာအသုံးပြုရမည်ကိုပြလိမ့်မည်။
ပထမ ဦး စွာ PHP တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုနှင့်အခြေခံအမှားကိုင်တွယ်ရန်အတွက် MySQLI ကို မည်သို့အသုံးပြုရမည်ကိုကြည့်ကြပါစို့။ MySQLI connection object တွင်အမှားအယွင်းများနှင့်အမှားကုဒ်များကို MySQLI :: MySQLI :: MySQLI :: $ ersqli ဂုဏ်သတ္တိများမှတစ်ဆင့်ရရှိနိုင်သည်။
<?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$database = 'test_db';
// ဖန်တီး MySQLi ဆက်
$conn = new mysqli($host, $username, $password, $database);
// 检查ဆက်是否成功
if ($conn->connect_error) {
echo "ဆက်失败: " . $conn->connect_error;
exit();
}
// တစ် ဦး စုံစမ်းမှု execute
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
// စုံစမ်းမှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if (!$result) {
// Error Codes များနှင့်အမှားအယွင်းများကိုပုံနှိပ်ပါ
echo "အမှားကုဒ်: " . $conn->errno . "<br>";
echo "အမှားသတင်းစကား: " . $conn->error;
}
// 关闭ဆက်
$conn->close();
?>
Database connection အောင်မြင်မှုရှိမရှိစစ်ဆေးရန် Connect_Error ကို သုံးပါ။
အမှားကုဒ်များနှင့်သတင်းအချက်အလက်အမှားများကိုရယူရန် Errno နှင့် အမှားကို သုံးပါ။
စုံစမ်းမှုတစ်ခုကိုလုပ်ဆောင်ပြီးနောက်အမှားတစ်ခုဖြစ်ပေါ်ပါကအသေးစိတ်အချက်အလက်များသည် Errno နှင့် အမှား မှထွက်ပေါ်လာသည်။
၎င်းသည်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အမှားအယွင်းများကိုတိုက်ရိုက်ထုတ်ယူခြင်းသည်ထိရောက်သော်လည်းကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုမှတ်တမ်းတင်ခြင်းနှင့်အထိခိုက်မခံသောအချက်အလက်များကိုအဖြေရှာသောသတင်းအချက်အလက်များကိုဖော်ထုတ်ခြင်းကိုရှောင်ကြဉ်လိုကြသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်လှပသောအမှားကိုင်တွယ်ပုံသည် developer များပြ problems နာများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိနိုင်သော်လည်းစနစ်လုံခြုံရေးနှင့်အသုံးပြုသူအတွေ့အကြုံကိုလည်းတိုးတက်စေသည်။
Log file သို့အမှားအချက်အလက်များကိုရေးရန်ကျွန်ုပ်တို့သည် error_log () function ကိုသုံးနိုင်သည်။ ဒီနေရာမှာတိုးတက်လာသောကုဒ်နံပါတ်ဖြစ်သည်။
<?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$database = 'test_db';
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
// အသုံးပြု error_log 记录ဆက်错误
error_log("ဆက်失败: " . $conn->connect_error, 3, "/var/log/php_errors.log");
exit();
}
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
if (!$result) {
// မှတ်တမ်းအမှားမှတ်တမ်း
error_log("အမှားကုဒ်: " . $conn->errno . " အမှားသတင်းစကား: " . $conn->error, 3, "/var/log/php_errors.log");
// 输出友好的အမှားသတင်းစကား
echo "စစ်ဆင်ရေးပျက်ကွက်,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ。";
}
$conn->close();
?>
Error_log (ဥပမာ - /var/log/php_Errors.log ကဲ့သို့သောအမှားအချက်အလက်များကိုရေးရန် error_log () ကို သုံးပါ။
နည်းပညာဆိုင်ရာအသေးစိတ်အချက်အလက်များကိုဖော်ထုတ်ခြင်းကိုရှောင်ရှားရန် User-Friendly အမှားအယွင်းများကိုရှေ့ဆုံးတွင်ဖော်ပြပါ။
3- parameter ကိုချိန်ညှိခြင်းမှတဆင့်ဖိုင်သို့အမှားအယွင်းများရေးပါ။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ကျွန်ုပ်တို့သည် PHP error display ကို disable လုပ်ပြီး log ထဲကို 0 င်ပါ။ အထိခိုက်မခံသောအမှားအချက်အလက်များကိုအဆုံးအသုံးပြုသူများနှင့်ထိတွေ့ခြင်းမှကာကွယ်ရန်အတွက်ကျွန်ုပ်တို့သည် php.ini ကို ပြုပြင်ခြင်းသို့မဟုတ်အောက်ပါကုဒ်ကို အသုံးပြု. အမှားရလဒ်များကိုပိတ်ထားနိုင်သည်။
<?php
// အမှားပြသမှုကိုပိတ်ပါ
ini_set('display_errors', '0');
// အမှားသစ်ထုတ်လုပ်ခြင်းကို Enable လုပ်ပါ
ini_set('log_errors', '1');
ini_set('error_log', '/var/log/php_errors.log');
// ဆက်数据库并တစ် ဦး စုံစမ်းမှု execute
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
// 记录ဆက်错误
error_log("ဆက်失败: " . $conn->connect_error, 3, "/var/log/php_errors.log");
exit();
}
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
if (!$result) {
// 记录အမှားသတင်းစကား
error_log("အမှားကုဒ်: " . $conn->errno . " အမှားသတင်းစကား: " . $conn->error, 3, "/var/log/php_errors.log");
echo "စစ်ဆင်ရေးပျက်ကွက်,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ。";
}
$conn->close();
?>
Ini_set ('display_Error's' ', 0') - အမှားပြသမှုကိုပိတ်ထားပါ။
ini_set ('log_errors' ',' 1 ') : အမှားအယွင်းများကိုဖွင့်ပါ။
အမှားမက်ဆေ့ခ်ျကို error_log () function ကိုမှတဆင့်သတ်မှတ်ထားသောဖိုင်သို့မှတ်တမ်းတင်ထားသည်။
အမှားများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်ရန် MySQLI :: MySQLI :: MySQLI :: MySQLI :: MySQLI :: MySQLI :: MySQLI :: error error error error error error error error :: ၎င်းသည်မိတ္တူပွားကုဒ်ကိုလျော့နည်းစေပြီးကုဒ်၏ထိန်းသိမ်းမှုကိုထိန်းသိမ်းသည်။
<?php
// Custom Error ကိုကိုင်တွယ်ဖြေရှင်းခြင်း
function handleMysqliError($conn) {
// မှတ်တမ်းတင်ရန်အမှားအယွင်းများကိုမှတ်တမ်းတင်ပါ
error_log("အမှားကုဒ်: " . $conn->errno . " အမှားသတင်းစကား: " . $conn->error, 3, "/var/log/php_errors.log");
// 显示友好的အမှားသတင်းစကား
echo "စစ်ဆင်ရေးပျက်ကွက်,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ。";
}
// ဖန်တီး数据库ဆက်
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
handleMysqliError($conn);
exit();
}
$sql = "SELECT * FROM non_existing_table";
$result = $conn->query($sql);
if (!$result) {
handleMysqliError($conn);
}
$conn->close();
?>
လက်ကိုင်လက်များကိုင်တွယ် မှုလုပ်ဆောင်ချက်သည်အမှားကိုင်တွယ်ပုံ၏ယုတ္တိဗေဒကိုလိုက်နာသည်။
အမှားတစ်ခုဖြစ်ပေါ်သောအခါ function ကိုတိုက်ရိုက်ခေါ်ဆိုပါကကုဒ်ကိုတိုက်ရိုက်ခေါ်ဆိုရုံသာမကကုဒ်ကိုရိုးရှင်းရုံသာမကအရေးယူနိုင်သည့်အမှားကိုင်တွယ်သည့်နည်းလမ်းကိုလည်းသေချာစေသည်။
PHP တွင် MySQLI :: $ ersqli :: Mysqli :: $ အမှားအယွင်းများကို အသုံးပြု. အမှားအယွင်းများကိုပုံနှိပ်ရန်အလွန်များသောအားဖြင့်ဖြစ်သည်။ Error ကိုပိုမိုလှပပြီးလုံခြုံမှုကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက်စနစ်၏ကြံ့ခိုင်ခြင်းနှင့်အသုံးပြုသူအတွေ့အကြုံများကိုသစ်ခုတ်ခြင်းဖြင့် 0 င်ရောက်ခြင်း,
PHP တွင် database စစ်ဆင်ရေးများတွင်အမှားအယွင်းများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးကသင့်အားပိုမိုနားလည်ရန်ကူညီပေးပါ။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. ဆွေးနွေးရန်မက်ဆေ့ခ်ျတစ်ခုထားပါ။