လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> မည်သည့်အချိန်တွင်မည်သည့်အချိန်တွင် errno overwrite လိမ့်မည်နည်း။ ဘယ်လိုမှန်ကန်စွာသုံးရမလဲ။

မည်သည့်အချိန်တွင်မည်သည့်အချိန်တွင် errno overwrite လိမ့်မည်နည်း။ ဘယ်လိုမှန်ကန်စွာသုံးရမလဲ။

M66 2025-05-17

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါ MySQLI တိုးချဲ့မှုသည်စုံစမ်းမှုကွပ်မျက်မှုအတွက်လုပ်ဆောင်မှုကိုပေးသည်။ ဒေတာဘေ့စ်ဆက်သွယ်မှုတစ်ခုနှင့်အတူကျွန်ုပ်တို့သည် SQL Queries မျိုးစုံကိုလုပ်ထုံးလုပ်နည်းများကိုအကောင်အထည်ဖော်နိုင်သော်လည်းသင်မေးမြန်းမှုမျိုးစုံကို ကွပ်မျက်ခံရ လျှင်, တစ်နည်းပြောရလျှင်, စုံစမ်းမှုများစွာဆက်သွယ်မှုတစ်ခုမျှဝေသောအခါ, သင်ဘယ်လိုအမှားကုဒ်ကိုတစ်ကြိမ်ရနိုင်မလဲ။

ဤရာထူးတွင် MySQLI :: errno သည် errno overwrite ရှိမရှိနှင့် ပတ်သက်. ဆွေးနွေးပါမည်။

1 ။ MySQLI :: $ errno ကဘာလဲ။

MySQLI :: $ errno သည် MySQLI အတန်းထဲတွင်အိမ်ခြံမြေအကျိုးတစ်ခုဖြစ်သည်။ ၎င်းသည်နောက်ဆုံးမေးမြန်းမှု၏အမှားကုဒ်ကိုပြန်လည်ရောက်ရှိစေသည်။ အမှားကုဒ်သည်လက်ရှိစစ်ဆင်ရေးအခြေအနေကိုညွှန်ပြသောနံပါတ်ဖြစ်သည်။ အကယ်. တန်ဖိုး 0 ဖြစ်ပါကအမှားမရှိပါ။

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

$query = "SELECT * FROM non_existent_table";
$mysqli->query($query);

echo "အမှားကုဒ်: " . $mysqli->errno;
?>

အထက်ပါကုဒ်တွင် $ MySQLI-> ERRNO သည် နောက်ဆုံးမေးမြန်းမှုအတွက်အမှားကုဒ်ကိုပြန်ပို့လိမ့်မည်။

2 ။ MySQLI :: $ errno ကို errno မစ်ဆူးမျိုးစုံကိုဝေမျှသောအခါ overranstitte overwrite ကို overwrite လုပ်လိမ့်မည်နည်း။

အကယ်. သင်သည်တူညီသောဆက်သွယ်မှုတစ်ခုတည်းတွင်မေးမြန်းချက်မျိုးစုံကိုသင်အကောင်အထည်ဖော်လျှင် MySQLI :: errno er roerno သည် query query ပြီးနောက်အမှားအယွင်းအသစ်တစ်ခုသို့အဆင့်မြှင့်တင်လိမ့်မည်။ ဒါကြောင့်သင်က $ MySQLI-> ERRNO လို့ခေါ်တယ်, နောက်မေးခွန်းကို query ကိုလုပ်ဆောင်ပြီးနောက် $ MySQLI-> ERRNO> ERRNO> errno ကို errorqli-errno ကို overwrite လုပ်လိမ့်မည်။

ဥပမာအားဖြင့်:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

$query1 = "SELECT * FROM non_existent_table";
$query2 = "SELECT * FROM another_non_existent_table";

$mysqli->query($query1);
echo "第一个查询အမှားကုဒ်: " . $mysqli->errno . "<br>";

$mysqli->query($query2);
echo "第二个查询အမှားကုဒ်: " . $mysqli->errno . "<br>";
?>

အထက်ပါကုဒ်ကိုဖွင့်သောအခါ $ MySQLI-> ERRNO သည် ပထမမေးခွန်းကိုအကောင်အထည်ဖော်ပြီးနောက်ပထမဆုံးအမှားကုဒ်ကိုပြန်ပို့လိမ့်မည်, ထို့ကြောင့်, သင်နောက်ဆုံးမေးမြန်းမှုအတွက်အမှားကုဒ်ကိုသာတွေ့နိုင်ပြီး query တစ်ခုစီအတွက်အမှားကုဒ်ကိုတိုက်ရိုက်မရရှိနိုင်ပါ။

3 ။ အမှားကုဒ်ကိုမှန်ကန်စွာရယူနိုင်ပုံ။

စုံစမ်းမှုတစ်ခုစီအတွက်အမှားကုဒ်ကိုမှန်ကန်စွာရယူနိုင်ရန်အတွက်သင်စုံစမ်းမှုတစ်ခုစီပြီးပါကလက်ရှိအမှားကုဒ်ကိုကိုယ်တိုင်သိမ်းနိုင်သည်။ Query တစ်ခုစီအတွက်အမှားကုဒ်ကိုမှတ်တမ်းတင်ရန် variable ကိုသုံးနိုင်သည်။

ဒီနေရာမှာတိုးတက်လာသောကုဒ်နံပါတ်ဖြစ်သည်။

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

$query1 = "SELECT * FROM non_existent_table";
$query2 = "SELECT * FROM another_non_existent_table";

// ပထမ ဦး ဆုံးမေးမြန်းချက်ကို execute
$mysqli->query($query1);
$error_code1 = $mysqli->errno; // 保存第一个查询的အမှားကုဒ်
echo "第一个查询အမှားကုဒ်: " . $error_code1 . "<br>";

// ဒုတိယမေးခွန်းကိုလုပ်ဆောင်ပါ
$mysqli->query($query2);
$error_code2 = $mysqli->errno; // 保存第二个查询的အမှားကုဒ်
echo "第二个查询အမှားကုဒ်: " . $error_code2 . "<br>";
?>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် $ error_code1 နှင့် $ error_code2 ကို သုံးနိုင်သည်။ ဤနည်းအားဖြင့်စုံစမ်းမှုတစ်ခုစီ၏အမှားကုဒ်ကို overwrite မဟုတ်ဘဲသီးခြားစီမှတ်တမ်းတင်လိမ့်မည်မဟုတ်ပေ။

4 ။ နိဂုံးချုပ်

စုံစမ်းမှုတစ်ခုစီအတွက်အမှားကုဒ်ကိုသိမ်းဆည်းရန်ကွဲပြားခြားနားသော variable များကိုအသုံးပြုခြင်းအားဖြင့်, ဤချဉ်းကပ်နည်းသည်ရှာဖွေခြင်းအမှားများကိုပိုမိုတိကျသော debugging နှင့်ကိုင်တွယ်ရန်ခွင့်ပြုရန်ဤချဉ်းကပ်မှုသည်ရှောင်ရှားခြင်းနှင့်အချက်အလက်ဆုံးရှုံးခြင်းကိုရှောင်ရှားသည်။

ဤဆောင်းပါးသည် MySQLI :: $ errno အသုံးပြုခြင်းကိုပိုမိုနားလည်သဘောပေါက်ရန်ပိုမိုနားလည်သဘောပေါက်ရန်နှင့်စုံစမ်းမှုတစ်ခုစီအတွက်အမှားကုဒ်ကိုမှန်ကန်စွာရယူရန်ခွင့်ပြုသည့်အဖြေရှာရန်မျှော်လင့်ပါသည်။