MySQL နှင့်ပါ 0 င်သော PHP ကိုအသုံးပြုသောအခါ developer အချို့က MySQL_INFO () သို့မဟုတ် MySQLI_INFO () သို့မဟုတ် MySQLI_INFO () ကို အသုံးပြု. MySQL_INFO () သို့မဟုတ် mySqli_info () ကို သုံး. ထုတ်ပြန်ချက်များကိုဖြည့်သွင်းခြင်းသို့မဟုတ်ဖျက်ခြင်းတို့ပြုလုပ်ပြီးနောက်ဖြည့်စွက်အချက်အလက်များကိုဖြည့်စွက်ပါ။ သို့သော်တစ်ခါတစ်ရံတွင်အချက်အလက်များပြန်အပ်သည့်အချက်အလက်များသည်အချို့သောစစ်ဆင်ရေးများအပြီးတွင် မှားယွင်းသော သို့မဟုတ်အချည်းနှီးသောကြိုးများကိုပင်ပြန်ပို့သည်ကိုသင်တွေ့ရှိနိုင်သည်။ ဤ "စိတ်မချရသော" အပြုအမူနှင့်အတူဘာတွေဖြစ်နေသလဲ။ ဤဆောင်းပါးသည်၎င်း၏လုပ်ငန်းနိယာမမှစတင်ပါလိမ့်မည်
MySQL_INFO () ကိုအဓိကအားဖြင့်ရွေးချယ်မှုမရှိသောထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ပြီးနောက်ကွပ်မျက်မှုအခြေအနေကိုအကျဉ်းချုပ်ဖော်ပြရန်အဓိကအားဖြင့်အသုံးပြုသည်။
$link = mysqli_connect("localhost", "user", "pass", "testdb");
mysqli_query($link, "UPDATE users SET status = 1 WHERE id < 100");
echo mysqli_info($link);
ပြန်လာသောအကြောင်းအရာဖြစ်နိုင်သည်
Rows matched: 100 Changed: 100 Warnings: 0
ဤ output သတင်းအချက်အလက်သည်အသုတ်စစ်ဆင်ရေးများကို debugging လုပ်သည့်အခါဤသို့သောအတန်းမည်မျှကိုက်ညီသည်, သို့သော်၎င်းသည်အခြေခံ MySQL မှပြန်လာသောအခြေအနေသတင်းအချက်အလက်အပေါ်မူတည်သည်။
Non-Selection Non-Selections အားလုံးသည် အချက်အလက် အချက်အလက်များကိုထုတ်ဖော်ပြောဆိုခြင်းမဟုတ်ဘဲတရားဝင် MySQL စာရွက်စာတမ်းများကအောက်ဖော်ပြပါကြေငြာချက်အမျိုးအစားများသည်ဤအချက်အလက်များကိုသာပေးနိုင်သည်ဟုရှင်းလင်းစွာဖော်ပြထားသည်။
သို့ထည့်ပါ ... Select ...
နောက်ဆုံးသဘောပြု
ဖျက်
ဒေတာကို load
သာမန် ထည့်သွင်းခြင်း , အစားထိုးခြင်း စသည်တို့ကဲ့သို့ဖော်ပြချက်များအထူးသဖြင့်အချက်အလက်များကို sucqueries များမှတဆင့်အချက်အလက်များကိုမဖြည့်စွက်ပါ။
MySQL client စာကြည့်တိုက် (Libmysql သို့မဟုတ် MySQLND) PHP မှအသုံးပြုသော MySQLND) သည်အချက်အလက်များကိုဝယ်ယူခြင်းကိုအကျိုးသက်ရောက်လိမ့်မည်။ MySQLND (MySQL Native Driver Driver) ကိုအသုံးပြုသည့်အခါ MySQLI_INFO () မှ ပြန်လာသောအကြောင်းအရာသည်ပိုမိုယုံကြည်စိတ်ချရသည့်အကြောင်းအရာဖြစ်သည်။ အကယ်. ၎င်းသည် libmsql ဖြစ်လျှင်အချို့သောသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းသို့မဟုတ်နှောင့်နှေးခြင်းမပြုရ။
SQL ထုတ်ပြန်ချက်များကိုဆက်သွယ်မှုတွင် (ဥပမာ, အသုတ်ထုတ်လုပ်ခြင်း) တွင် (ဥပမာ, အသုတ်ထုတ်လုပ်ခြင်း) တွင်ကွပ်မျက်ခံရပါက MySQLI_INFO () MySQLI_INFO () MySQLI_INFO () သည် နောက်ဆုံးကြေညာချက်၏အချက်အလက်အချက်အလက်များကိုသာပြန်ပို့သည်။ ဆိုလိုသည်မှာ
mysqli_query($link, "UPDATE table1 SET name = 'A'; UPDATE table2 SET name = 'B';");
echo mysqli_info($link); // သာပြန်လာပါလိမ့်မယ် table2 ကွပ်မျက်သတင်းအချက်အလက်
၎င်းသည်များစွာသော developer များစွာသည်ယခင်စစ်ဆင်ရေးများကွပ်မျက်ခံရခြင်းသို့မဟုတ်အကျိုးသက်ရောက်မှုမရှိကြောင်းမှားယွင်းစွာယုံကြည်ကြသည်။
ကွဲပြားခြားနားသော MySQL ဆာဗာဗားရှင်းများသည်အချက်အလက်များအကြောင်းအရာများကိုပြန်လည်နေရာချထားရေးတွင်ကွဲပြားခြားနားမှုရှိသည်။ ဥပမာအားဖြင့်, အဟောင်းတွေ ဗားရှင်းကိုက်ညီ သို့မဟုတ် သတိပေးချက်များ ကိုရေတွက်။ မရပေမည်, ထို့အပြင်အချို့သောစွမ်းဆောင်ရည်အကောင်းဆုံးရွေးချယ်မှုများကိုဖွင့်ထားပါကအချို့သောစာရင်းအင်းဆိုင်ရာယုတ္တိဗေဒကိုကျော်သွားနိုင်သည်။
MySQLND driver ကို PHP ပတ်ဝန်းကျင်တွင်သေချာအောင်လုပ်ပါ။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းအဲဒါကိုစစ်ဆေးနိုင်တယ်။
if (function_exists('mysqli_get_client_stats')) {
echo "mysqlnd enabled";
}
MySQLND သည်ပိုမိုပြည့်စုံပြီးစံသတ်မှတ်ထားသောအချက်အလက်အထောက်အပံ့များကိုပိုမိုကောင်းမွန်ပံ့ပိုးပေးသည်။ ၎င်းသည် Libmysql ထက်ထုတ်လုပ်မှုပတ် 0 န်းကျင်အတွက်ပိုမိုအကြံပြုသည်။
ထုတ်ပြန်ချက်များစွာ (Multi_query) တွင်အချက်အလက်များပြန်လည် 0 င်ရောက်ခြင်းကိုအားမကိုးပါနှင့်။ ကြေငြာချက်တစ်ခုစီကိုသီးခြားစီကွပ်ကဲစစ်ဆေးသင့်ပြီးနောက်ဆက်တွဲဖော်ပြချက်များအနေဖြင့်၎င်းကိုပြန်လည်ရေးသားခြင်းမှကာကွယ်ခြင်းမှကာကွယ်ရန်ချက်ချင်းဖတ်သင့်သည်။
mysqli_query($link, "DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY");
$logInfo = mysqli_info($link);
echo "log:" . $logInfo;
အရေးကြီးသော SQL operations အချို့အတွက် MySQL_InFO () မှ ပြန်လာသောစာသားဖော်ပြချက်အပေါ်လုံးဝမမှီခိုနိုင်သော်လည်းစီးပွားရေးယုတ္တိဗေဒအပေါ် အခြေခံ. အပိုဆောင်းစုံစမ်းမှုသို့မဟုတ်သစ်ထုတ်လုပ်ခြင်းကိုပြုလုပ်ရန်၎င်းကိုအတည်ပြုရန်အကြံပြုသည်။ ဥပမာအားဖြင့်, Row Conser ကိုအရင်ကမအောင်မြင်မီနှင့်ပြီးဆုံးခြင်းကိုရှင်းလင်းပါ။
ပြောင်းလဲခြင်း - SQL သည်အောင်မြင်စွာကွပ်မျက်ခံရခြင်းမရှိသေးဟုဆိုခြင်းသည်မလွယ်ကူပါ။ ဤမြင်ကွင်းသည် မွမ်းမံမှုများ တွင်အလွန်အမင်းပုံမှန်ဖြစ်ပြီး, အဘယ်ကြောင့် အတန်းများကိုလိုက်ဖက်သောအတန်းများ နှင့်အဘယ်ကြောင့်တွေ့မြင်ရကြောင်းရှင်းပြသည် ။ 0 ။
Debug နှင့် Record ကိုပိုမိုထိရောက်စွာထုတ်လွှင့်နိုင်ရန်အတွက်အချက်အလက်အချက်အလက်များကိုအောက်ပါနည်းလမ်းများဖြင့် log in inter interface ကို log သို့မဟုတ်ပြသရန်ရေးသားနိုင်သည်။
$sql = "UPDATE users SET status = 0 WHERE active = 0";
mysqli_query($link, $sql);
file_put_contents("/var/log/mysql_ops.log", date('Y-m-d H:i:s') . " " . $sql . " => " . mysqli_info($link) . "\n", FILE_APPEND);
ဤရွေ့ကားစစ်ဆင်ရေးမှတ်တမ်းများကိုဝေးလံခေါင်သီသောစောင့်ကြည့်လေ့လာရေးစနစ်သို့ interface မှတဆင့်ပေးပို့နိုင်ပါတယ်။