လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: RERMO:: PHP တွင်အမှားအယွင်းရှိသည့် Errno ကို Eletantly Print လုပ်နည်း

MySQLI :: RERMO:: PHP တွင်အမှားအယွင်းရှိသည့် Errno ကို Eletantly Print လုပ်နည်း

M66 2025-05-17

MySQLI ကို PHP တွင်ဒေတာဘေ့စ်စစ်ဆင်ရေးအတွက်အသုံးပြုသောအခါ, သင်မကြာခဏအမှားမက်ဆေ့ခ်ျပုံနှိပ်ရန်လိုအပ်သည့်အခြေအနေများမကြာခဏသင်မကြာခဏတွေ့ဆုံလေ့ရှိသည်။ များသောအားဖြင့် MySQLI extension သည်အမှားအယွင်းများကိုအထောက်အကူပြုရန်အမှားအယွင်းများကိုချက်ချင်းတုံ့ပြန်ချက်ပြ feartback ပြ problems နာများကိုအထောက်အကူပြုရန် MySQLI ::: MySQLI :: $ error ) ကိုပေးသည်။ သို့သော်အမှားမှတ်တမ်းကိုရှင်းလင်းရန်နှင့် Debug သို့ပိုမိုလွယ်ကူစေရန်ဤအမှားမက်ဆေ့ခ်ျများကိုလျောက်ပတ်စွာမည်သို့ပုံနှိပ်ထုတ်ဝေမည်နည်း။ ဤဆောင်းပါးသည် MySQLI :: PHP တွင်အမှားကုဒ်များနှင့်အမှားအယွင်းများကိုပုံနှိပ်ရန် $ errno ကို လျောက်ပတ်စွာအသုံးပြုရမည်ကိုပြလိမ့်မည်။

1 ။ အခြေခံ MySQLI အမှားကိုင်တွယ်

ပထမ ဦး စွာ 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 နှင့် အမှား မှထွက်ပေါ်လာသည်။

2 ။ လက်ကိုင်နှင့်အမှားမက်ဆေ့ခ်ျကိုလျောက်ပတ်စွာမှတ်တမ်းတင်

၎င်းသည်ထုတ်လုပ်မှုပတ် 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 ကိုချိန်ညှိခြင်းမှတဆင့်ဖိုင်သို့အမှားအယွင်းများရေးပါ။

3 ။ ELETITETERTY ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အမှားအယွင်းများကိုပိတ်ထားပါ

ထုတ်လုပ်မှုပတ် 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 ကိုမှတဆင့်သတ်မှတ်ထားသောဖိုင်သို့မှတ်တမ်းတင်ထားသည်။

4

အမှားများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်ရန် 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 စစ်ဆင်ရေးများတွင်အမှားအယွင်းများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးကသင့်အားပိုမိုနားလည်ရန်ကူညီပေးပါ။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. ဆွေးနွေးရန်မက်ဆေ့ခ်ျတစ်ခုထားပါ။