: အငြင်းပွားမှုယန္တရားမှတစ်ဆင့်ဆက်သွယ်မှုနှင့် query rights များကိုသတင်းပို့ပါ ( PoCoException ) Try Catch ကို အသုံးပြု. ကုဒ်ကိုဖမ်းယူနိုင်ပြီးခြွင်းချက်အချက်အလက်များတွင်အသေးစိတ်အချက်အလက်ဖော်ပြချက်များပါ 0 င်သည်။
MySQLI - ပစ္စည်းအမှားများကိုအစီရင်ခံရန် $ MySQLI-> Connection_Eronor -Encover_errino ကဲ့သို့သောဂုဏ်သတ္တိများနှင့်နည်းလမ်းများကိုသုံးပါ။ အမှားအယွင်းများသည်ခြွင်းချက်များကိုအလိုအလျောက်မချနိုင်ပါ။ တက်ကြွစွာရှာဖွေတွေ့ရှိရန်လိုအပ်သည်။
တနည်းအားဖြင့် PDO သည်ခြွင်းချက်ယန္တရားများပိုမိုများပြားသည်။
try {
$pdo = new PDO('mysql:host=gitbox.net;dbname=testdb;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "အောင်မြင်စွာဆက်သွယ်မှု";
} catch (PDOException $e) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $e->getMessage();
}
$mysqli = new mysqli('gitbox.net', 'username', 'password', 'testdb');
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
echo "အောင်မြင်စွာဆက်သွယ်မှု";
မှတ်စု: MySQLI သည် Connection Error Message ကို $ MySQLI-Getect_Error မှတစ်ဆင့်ရရှိသည်။ ခြွင်းချက်များကိုအလိုအလျောက်မပစ်နိုင်ပါ။
PDO သည် ခြွင်းချက်များကိုအသုံးပြုသည်။ ကုဒ်ဖွဲ့စည်းပုံသည်ရိုးရှင်းလွယ်ကူပြီးပိုမိုလုံခြုံသည်။
MySQLI သည် MySQLI-Getection_ERRORE- GECTIONKLI-> Connect_errino ကို အတိအကျအကဲဖြတ်ရန်လိုအပ်သည်။
သင် ကြိုးစားရန်အသုံးပြုသည်ဆိုပါက,
PDO သည် Charset = UTF8 ကဲ့သို့သော DSN ဆက်သွယ်မှု string ကိုသတ်မှတ်ထားသည့်ဇာတ်ကောင်ကိုတိုက်ရိုက်သတ်မှတ်သည်။
$mysqli->set_charset('utf8');
ဒီလိုမှမဟုတ်ရင်တရုတ်ရှို့ carbled code နဲ့ပြ problems နာတွေရှိလိမ့်မယ်။
PDO သည် connection options များစွာကိုထောက်ပံ့သည်။ MySQLI သည်အချို့သောရွေးချယ်စရာများကိုထောက်ပံ့သည်။ ဥပမာအားဖြင့်:
PDO ကို PDO :: Attr_Persistent ဖြင့်ဖွင့်နိုင်သည်။
MySQLI သည် ထပ်မံ. ဆက်လုပ်ရန်သို့မဟုတ်မြဲမြဲချိတ်ဆက်မှုများကိုဖွင့်ရန်နည်းလမ်းအမျိုးမျိုးသုံးရန်လိုအပ်သည်။
PDO POPOCESSING ကြေငြာချက် $ stmt = $ pdo-> ပြင်ဆင် ($ sql) ကိုအသုံးပြုသည်။ အမည်ရှိ parameter သည် binding ကိုထောကျပံ့ရန်။
MySQLI Preprocessing Statement သည် $ stmt = $ MySQLi-> ပြင်ဆင်ခြင်း ($ sql) ကိုအသုံးပြုသည်။ မေးခွန်းများသာ Mark placeholders များကိုသာထောက်ပံ့သည်။
အကယ်. မူရင်းကုဒ်သည်အမည်ရှိသည့်သတ်မှတ်ချက်များအမြောက်အများကိုအသုံးပြုပါကမေးခွန်းအမှတ်အသားတစ်ခုအနေဖြင့်ပြန်လည်ရေးသားရန်လိုအပ်သည်။
MySQLI သည်ပုံမှန်အားဖြင့်ခြွင်းချက်များကိုမပစ်ပါ။ PDO ၏ခြွင်းချက်ကိုဖမ်းယူလိုပါက MySQLI ခြွင်းချက်ပစ် function ကို enable လုပ်နိုင်သည်။
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
ဖွင့်လှစ်ပြီးနောက် MySQLI သည် MySQLI_SQL_Exception ကို ပစ်ချလိမ့်မည်။
အကြံအစည် | ပန်ကေ | MySQLI |
---|---|---|
အမှားကိုင်တွယ် | ခြွင်းချက်ဖမ်း (ကြိုးစားကြည့်ပါ) | ပြင်ပမှခြွင်းချက်များကို enable လုပ်ရန် $ CONECT_ERRORE ကို စစ်ဆေးပါ |
ချိတ်ဆက်မှု string ကိုပုံစံ | DSN string ကို (charset ကိုသတ်မှတ်နိုင်သည်) | charset ကိုသီးခြားစီသတ်မှတ်ပါ, set_charet () ကို ခေါ်ရန်လိုအပ်သည်။ |
pourrocessing parameter သည် binding | support support parameters တွေကိုကူညီပါ | မေးခွန်းများသာ Mark Placeholders ကိုသာထောက်ပံ့သည် |
မြဲဆက်သွယ်မှုအထောက်အပံ့ | ရွေးချယ်စရာများအားဖြင့်သတ်မှတ် | အကောင်အထည်ဖော်ရန်မတူညီသောနည်းလမ်းများလိုအပ်သည် |
အတိုချုပ်ပြောရလျှင် PDO မှ MySqli သို့ပြောင်းခြင်းသည်အစားထိုး connection method တစ်ခုသာမကအမှားကိုင်တွယ်ခြင်း, encoding settings, precoding settings, preprocessing settings, preprocessing statements စသဖြင့်စဉ်းစားရန်လည်းစဉ်းစားသည်။