PHP တွင် MySQLI တိုးချဲ့ခြင်းသည် MySQL database :: MySQLI :: Get_warennings function ကိုရရှိသောသတိပေးအချက်အလက်များရရှိရန်အသုံးပြုသော MySQL database လုပ်ငန်းများကိုအသုံးပြုသည်။ ဤလုပ်ဆောင်မှုသည် MySQL 5.6 နှင့်အထက်တွင်ကောင်းမွန်စွာလုပ်ဆောင်သော်လည်း MySQL ၏ဗားရှင်းကွဲပြားခြားနားသောဗားရှင်းကွဲပြားမှုနှင့်စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုအချို့ရှိပြီး developer များကပြ problems နာများကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည် MySQLI :: Get_warenings ၏သဟဇာတဖြစ်သောပြ issues နာများကိုအသေးစိတ်ဖော်ပြပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။
MySQLI :: Get_warenings MySQLI_Warning Object ကွင်းဆက်ကို MySQLI_Warning Object ကွင်းကွင်းကွင်းဆက်ကိုပြန်လည်ပေးအပ်သော MySQLI_Warning Object ကွင်းဆက်ကိုပြန်လည်ပေးအပ်သော MySQLI_Warning Object ကွင်းဆက်ကိုပြန်လည်ပေးအပ်သော MySQLI_Warning Object ကွင်းဆက်ကိုပြန်လည်ရောက်ရှိစေသည်။ သတိပေးအချက်အလက်များတွင်သတိပေးရေးရာများ, မက်ဆေ့ခ်ျများနှင့်သတိပေးချက်အဆင့်များတွင်သတိပေးခြင်းပါဝင်သည်။
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
$mysqli->query("YOUR SQL STATEMENT");
if ($warning = $mysqli->get_warnings()) {
do {
echo "Warning: (" . $warning->errno . ") " . $warning->message . "\n";
} while ($warning = $warning->next());
}
အထက်ပါကုဒ်သည်သတိပေးကွင်းဆက်ကိုမည်သို့ရယူရမည်ကိုပြသသည်။
MySQL ဗားရှင်းသက်ရောက်မှု
MySQL 5.6 နှင့်အထက်
MySQL 5.6 သည်သတိပေးချက်များအတွက်အထောက်အပံ့များတိုးတက်လာသည်။ MySQLI :: Get_warenings သည် ကောင်းမွန်စွာအလုပ်လုပ်နိုင်ပြီးသတိပေးစာများကိုပြန်ပို့နိုင်သည်။
MySQL 5.5 နှင့်အောက်တွင် ဖော်ပြထားသည် MySQL 5.5 နှင့်အထက်အစောပိုင်းတွင်, သတိပေးယန္တရားထောက်ခံမှုသည်အကန့်အသတ်ရှိသည်။ အချို့သောကိစ္စရပ်များတွင် MySQLI :: Get_warenings သည် မှားယွင်းသော နောက်သို့ပြန်ပို့နိုင်သည်။ ၎င်းသည်သတိပေးချက်အမှန်တကယ်တည်ရှိရင်တောင်မရရှိနိုင်ပါ။
MySQL configuration သက်ရောက်မှု
အချို့သော configuration parameters များ (ဥပမာ SQL_NOTTES ကဲ့သို့သော) သတိပေးချက်များကိုပြန်လည်အသုံးပြုခြင်းနှင့်မှတ်တမ်းတင်ခြင်းအပေါ်အကျိုးသက်ရောက်သည်။ သတိပေးစာများမှတ်တမ်းကိုပိတ်ခြင်းသည် get_warenings () ကို သတိပေးခြင်းမခံရစေရန်ဖြစ်ပေါ်စေလိမ့်မည်။
PHP ဗားရှင်းနှင့် MySQLI ယာဉ်မောင်း
PHP ဗားရှင်းနှင့် MySQLI Driver ဗားရှင်းသည်ဤနည်းလမ်း၏စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်လိမ့်မည်။ MySQLI extensions ၏အစောပိုင်း PHP ဗားရှင်းများသည်သတိပေးကွင်းဆက်များအတွက်ပံ့ပိုးမှုမပြည့်စုံပါ။
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$mysqli->query("INSERT INTO test_table VALUES (1, 'duplicate')"); // အဓိက key ကိုထပ်ခါတလဲလဲဟုယူဆ,သတိပေးချက်တစ်ခုထုတ်လုပ်ပါ
$warnings = $mysqli->get_warnings();
if ($warnings === false) {
echo "သတိပေးချက်မရနိုင်,ဖြစ်နိုင်စရာMySQLဗားရှင်းသို့မဟုတ် configuration ကိုမပံ့ပိုးပါ。";
} else {
do {
echo "သတိပေးနံပါတ်: " . $warnings->errno . ", အကေြာင်းကြားချက်: " . $warnings->message . "\n";
} while ($warnings = $warnings->next());
}
MySQL 5.5 သို့မဟုတ်အစောပိုင်းတွင် ဒေါ်လာသတိပေးချက်များသည် မှားယွင်းစွာ ပြန်ပို့ခြင်းနှင့်သတိပေးချက်များမရနိုင်ပါ။
MySQL ဗားရှင်း detect
သက်ဆိုင်ရာယုတ္တိဗေဒကိုမလုပ်ဆောင်မီ, လက်ရှိ MySQL ဗားရှင်းကိုစစ်ဆေးပြီး Get_warenings () ကို ခေါ်ရန်ဆုံးဖြတ်ပါ။
$version = $mysqli->server_info;
if (version_compare($version, '5.6.0', '>=')) {
// ထောက်get_warnings
$warnings = $mysqli->get_warnings();
} else {
$warnings = false;
}
SQL Warne Alternals
MySQL ဗားရှင်းသည်နိမ့်ကျပြီး Get_warenings ကို မ သုံးနိုင်ပါက,
$result = $mysqli->query("SHOW WARNINGS");
if ($result) {
while ($row = $result->fetch_assoc()) {
echo "Level: " . $row['Level'] . ", Code: " . $row['Code'] . ", Message: " . $row['Message'] . "\n";
}
}
unified ထုပ်ပိုးထုပ်ပိုး
function ကို oncapsulate online version အရနည်းလမ်းရရှိရန်သတိပေးချက်ကိုအလိုအလျောက်ပြောင်းရန်အကြံပြုသည်။
function getMysqlWarnings(mysqli $mysqli) {
if (version_compare($mysqli->server_info, '5.6.0', '>=')) {
$warnings = $mysqli->get_warnings();
$allWarnings = [];
if ($warnings !== false) {
do {
$allWarnings[] = [
'errno' => $warnings->errno,
'message' => $warnings->message,
];
} while ($warnings = $warnings->next());
}
return $allWarnings;
} else {
$result = $mysqli->query("SHOW WARNINGS");
$allWarnings = [];
if ($result) {
while ($row = $result->fetch_assoc()) {
$allWarnings[] = [
'level' => $row['Level'],
'code' => $row['Code'],
'message' => $row['Message'],
];
}
}
return $allWarnings;
}
}
MySQLI :: Get_warenings function သည် MySQL ၏ version, configuration နှင့် php ဗားရှင်းကွဲပြားမှုများကြောင့် MySQL သတိပေးသတင်းအချက်အလက်ရယူရန်အတွက်စံပြ interface တစ်ခုဖြစ်သည်။ ဤပြ issues နာများကိုဖြေရှင်းရန် developer များကလုပ်နိုင်သည် -
MySQL ဗားရှင်းကိုကြိုတင်ရှာဖွေပါ
သတိပေးချက်များကို အချိန်၌အသုံးပြုသည်
ကုဒ်အဆင်သင့်နှင့်လိုက်လျောညီထွေဖြစ်ခြင်းကိုတိုးမြှင့်ဖို့သတိပေးဝယ်ယူမှုယုတ္တိဗေဒ၏စည်းလုံးညီညွတ်ရေးစည်းလုံးညီညွတ်ရေးစည်းလုံးညီညွတ်ရေး
ဤနည်းအားဖြင့်ဒေတာဘေ့စ်သတိပေးသတင်းအချက်အလက်များကိုမတူညီသောပတ် 0 န်းကျင်တွင်ထိရောက်စွာရရှိနိုင်ရန်,