MySQLI :: Get_warenings ကို လတ်တလော MySQL စစ်ဆင်ရေးမှထုတ်လုပ်သောသတိပေးချက်ကိုရရှိရန်အသုံးပြုသည်။ အမှားများနှင့်နှိုင်းယှဉ်ပါကသတိပေးချက်များသည် SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ခြင်းများကိုမထိခိုက်သေးသော်လည်းဒေတာချွင်းချက်များ, စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများသို့မဟုတ်ယုတ္တိဆိုင်ရာပြ issues နာများသို့မဟုတ်ယုတ္တိဆိုင်ရာအားနည်းချက်များ
$mysqli = new mysqli('gitbox.net', 'user', 'pass', 'database');
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ:" . $mysqli->connect_error);
}
$result = $mysqli->query("YOUR SQL QUERY");
if ($result) {
if ($warnings = $mysqli->get_warnings()) {
do {
echo "သတိပေးကုဒ်: " . $warnings->errno . " - " . $warnings->message . "\n";
} while ($warnings->next());
}
}
ဆင်ခြင်တုံတရားဖြင့်ဤသတိပေးချက်များကိုဖမ်းယူခြင်းနှင့်ကိုင်တွယ်ခြင်းသည်လျှို့ဝှက်အန္တရာယ်များကိုစုဆောင်းခြင်းကိုတားဆီးနိုင်သည်။
static ခွဲခြမ်းစိတ်ဖြာခြင်းကိရိယာများ (PHPPSTAN, PSOLS) TORMANTS, PSORS) သည်များသောအားဖြင့်အမျိုးအစားအမှားများ, အလားအလာရှိသောခြွင်းချက်များနှင့်အသုံးမပြုရသေးသော variable များကိုစစ်ဆေးသည်။ Get_warenings သည် ရှုပ်ထွေးသောအရာဝတ်ထုတစ်ခုသို့ပြန်လာသောကြောင့်ဤသတိပေးချက်များကိုကောင်းစွာမစစ်ဆေးပါက code တွင်အသုံးချခြင်းမရှိပါကအောက်ပါအန္တရာယ်များရှိနိုင်သည်။
အလားအလာရှိသောအန္တရာယ်များကိုလျစ်လျူရှုခြင်းသို့ ဦး တည်စေသောသတိပေးချက်ကိုစစ်ဆေးမထားပါ။
သတိပေးအရာဝတ်ထုကိုမှန်ကန်စွာဖြတ်သန်းခြင်းသို့မဟုတ်ထုတ်ပြန်ခြင်းမရှိပါ။
Get_warenings ရလဒ်ကိုအလွဲသုံးစားပြုခြင်းသို့မဟုတ်လျစ်လျူရှုထားသည်။
အချို့သော static ခွဲခြမ်းစိတ်ဖြာခြင်းကိရိယာများသည်အသုံးပြုသူသတ်မှတ်ထားသောစည်းမျဉ်းများကိုထောက်ခံသည်။ အောက်ပါပုံမှန်ပြ problems နာများကို plugins များရေးသားခြင်းဖြင့်ရှာဖွေတွေ့ရှိနိုင်သည်။
quet_warenings တစ်ခုချင်းစီကိုစုံစမ်းမှုကွပ်မျက်ခံရပြီးနောက်ခေါ်ယူခြင်းရှိမရှိ။
Get_warenings မှပြန်လာသောအရာဝတ်ထုသည်ဖြတ်သန်းသွားပြီး logged လုပ်သည်။
သတိပေးချက်အရာဝတ်ထုကိုလျစ်လျူရှုထားသည့်အခြေအနေရှိပါသလား။
ဥပမာ PHPSTAN အတွက် Get_warenings သို့ခေါ်ဆိုမှုကိုခေါ်ဆိုခြင်းရှိမရှိစစ်ဆေးရန်စည်းကမ်းကိုသတ်မှတ်နိုင်သည် ။
Team Code သတ်မှတ်ချက်များကိုအတိအလင်းကိုင်တွယ်ရန်လိုအပ်သည့်စစ်ဆင်ရေးများအားလုံးကိုပြုလုပ်ရန်လိုအပ်သည့်အဆင့်သတ်မှတ်ချက်များကိုရေးဆွဲပါ။
SQL ကြေငြာချက်ကိုလုပ်ဆောင်ပြီးနောက် MySQLI-> Get_warenings () ကိုခေါ်ပါ။
တဆင့်နှင့် output ကိုမှထွက်သို့မဟုတ် log သတိပေးချက်များ။
လျစ်လျူရှုမရနိုင်သောသတိပေးချက်များအတွက်ခြွင်းချက်များသို့မဟုတ်စံချိန်တင်အမှားများကိုပစ်ချခြင်းသို့မဟုတ်မှတ်တမ်းတင်ခြင်းအမှားများကိုပစ်ချပါ။
ယူနစ်စစ်ဆေးမှုများသည်ဒေတာဘေ့စ်ကိုထုတ်ပေးရန် Database ကိုဖန်တီးရန် Database တစ်ခုကိုဖန်တီးရန်ဆိုဒ်ကိုမှန်ကန်စွာဖမ်းယူနိုင်ကြောင်းစစ်ဆေးပါ။
// နမူနာဒေတာဘေ့စ်သတိပေးစမ်းသပ်စစ်ဆေးမှုဥပမာ
class DatabaseWarningTest extends \PHPUnit\Framework\TestCase
{
public function testGetWarningsHandled()
{
$mysqli = new mysqli('gitbox.net', 'user', 'pass', 'database');
$mysqli->query("YOUR SQL QUERY THAT CAUSES WARNING");
$warnings = $mysqli->get_warnings();
$this->assertNotNull($warnings, 'သတိပေးချက်များကိုဖမ်းမိသင့်သည်');
while ($warnings) {
$this->assertIsInt($warnings->errno);
$this->assertIsString($warnings->message);
$warnings = $warnings->next();
}
}
}
$mysqli = new mysqli('gitbox.net', 'user', 'pass', 'database');
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ:" . $mysqli->connect_error);
}
$query = "INSERT INTO users (name, email) VALUES ('Zhang San', '[email protected]')";
$result = $mysqli->query($query);
if ($result === false) {
// အမှားများကိုကိုင်တွယ်
echo "SQLအမှား:" . $mysqli->error;
} else {
$warnings = $mysqli->get_warnings();
if ($warnings) {
do {
// သတိပေးသတင်းအချက်အလက်မှတ်တမ်းတင်,သို့မဟုတ်စီမံကိန်းလိုအပ်ချက်များအရ၎င်းကိုကိုင်တွယ်ပါ
error_log("数据库သတိပေးကုဒ်: {$warnings->errno}, အကေြာင်းကြားချက်: {$warnings->message}");
} while ($warnings->next());
}
echo "စစ်ဆင်ရေးအောင်မြင်သောဖြစ်ပါတယ်,နှင့်သတိပေးလုပ်ငန်းများ၌ခဲ့တာဖြစ်ပါတယ်";
}
MySQLI :: get_warenings ကို static ခွဲခြမ်းစိတ်ဖြာခြင်းလုပ်ငန်းစဉ်သို့ထည့်သွင်းခြင်းမှာဒေတာဘေ့စ်စစ်ဆင်ရေးသတိပေးချက်များကိုမှန်ကန်စွာဖမ်းယူနိုင်ပြီးလုပ်ငန်းများ၌ပြုလုပ်နိုင်ရန်အဓိကရည်ရွယ်ချက်ဖြစ်သည်။ Static ခွဲခြမ်းစိတ်ဖြာခြင်းစည်းမျဉ်းများကိုစိတ်ကြိုက်ပြုပြင်ခြင်းအားဖြင့်အဖွဲ့၏အသေးစိတ်အချက်အလက်များအားကောင်းစေခြင်းနှင့်စည်းမျဉ်းစည်းကမ်းများတိုးတက်အောင်ပြုလုပ်ခြင်း, ကုဒ်အရည်အသွေးကိုသိသိသာသာတိုးတက်အောင်လုပ်နိုင်သည်။ ကောင်းမွန်သောခြွင်းချက်ကိုင်တွယ်ခြင်းနှင့်သစ်ထုတ်လုပ်ခြင်းကိုပေါင်းစပ်ခြင်း, developer များသည်သတိပေးချက်များကိုလျစ်လျူရှုခြင်းကြောင့်ဖြစ်ပေါ်လာသောအလားအလာရှိသောပြ problems နာများကိုရှောင်ရှားရန် developer များသည် develabase interaction code ကိုပိုမိုအေးဆေးတည်ငြိမ်စွာထိန်းသိမ်းနိုင်သည်။