ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP တွင် PDO တွင် PDO ( PHP Data Obserts) ကို အသုံးပြုသည့်အခါ Ext SQL ထုတ်ပြန်ချက်များကိုအသုံးပြုသည့်အခါ Extect Method သည် Method () နည်းလမ်းကိုမကြာခဏအသုံးပြုလေ့ရှိသည် ။ ဤဆောင်းပါးသည် PDO :: EXIT ကို အသုံးပြုသောအခါအသေးစိတ်အမှားအယွင်းများကိုမည်သို့ကြည့်ရှုမည်ကိုရှင်းပြပါမည်။
PDO :: Easer point ကို SQL ကြေငြာချက်ကိုလုပ်ဆောင်ပြီးထိခိုက်မည့်အတန်းအရေအတွက်ကိုပြန်လည်ပေးအပ်သည်။ အကယ်. ကွပ်မျက်မှုမအောင်မြင်ပါက၎င်းသည် မှားယွင်းစွာ ပြန်ပို့သည်။ သို့သော်ပုံမှန်အားဖြင့်အမှားအယွင်းများသည်အလိုအလျောက်ထုတ်လွှင့်နိုင်ပြီးအမှားအယွင်းများကိုကိုယ်တိုင်လွှဲပြောင်းရန်လိုအပ်ပြီးအသေးစိတ်အချက်အလက်များကိုရရှိရန်လိုအပ်သည်။
<?php
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');
$sql = "UPDATE users SET status = 'active' WHERE id = 10";
$result = $pdo->exec($sql);
if ($result === false) {
echo "Execution မအောင်မြင်ပါ,ဒါပေမယ့်အသေးစိတ်အမှားမက်ဆေ့ခ်ျမရှိပါ。";
} else {
echo "ဒါဟာထိခိုက်ခဲ့သည် {$result} အိုကေ。";
}
?>
PDO သည်အမှားအယွင်းအမျိုးမျိုးကိုကိုင်တွယ်သောအမှားအမျိုးမျိုးကိုထောက်ပံ့သည်။ အသုံးအများဆုံးသူမှာ -
PDO :: ERRMODEDODE_SILENT : ပုံမှန် mode, အမှားအယွင်းများကိုမပစ်ချပါ။ အမှားကုဒ်များကိုသာမှတ်တမ်းတင်ထားသည်။
PDO :: ErrMode_warning : PHP သတိပေးချက်ကိုအစပျိုးပါ။
PDO :: ErrMode_Exception : ခြွင်းချက်တစ်ခုပစ်ချသည်။
PDO :: ERRMODEDE_Exception ကို အသုံးပြုရန်ကျွန်ုပ်တို့အကြံပြုပါသည်။
<?php
try {
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE users SET status = 'active' WHERE id = 10";
$result = $pdo->exec($sql);
echo "ဒါဟာထိခိုက်ခဲ့သည် {$result} အိုကေ。";
} catch (PDOException $e) {
echo "执အိုကေ出错: " . $e->getMessage();
}
?>
အကယ်. သင်သည်ခြွင်းချက် mode ကိုမသုံးပါကအမှားအယွင်းကိုအောက်ပါနည်းလမ်းများဖြင့်ရှုမြင်နိုင်သည်။
<?php
$pdo = new PDO('mysql:host=m66.net;dbname=testdb;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$sql = "UPDATE users SET status = 'active' WHERE id = 10";
$result = $pdo->exec($sql);
if ($result === false) {
$errorInfo = $pdo->errorInfo();
echo "အမှားကုဒ်: " . $errorInfo[0] . "<br>";
echo "驱动အမှားကုဒ်: " . $errorInfo[1] . "<br>";
echo "အမှားသတင်းစကား: " . $errorInfo[2];
} else {
echo "ဒါဟာထိခိုက်ခဲ့သည် {$result} အိုကေ。";
}
?>
ချို့ယွင်းချက်တစ်ခု () array ကိုပြန်ပို့သည်။
[0] SQLSTATE ERRORCH CODEC (Standard ERRONCH COMP)
[1] ယာဉ်မောင်းတိကျတဲ့အမှားကုဒ်
[2] ယာဉ်မောင်းတိကျစာအမှား
ချွင်းချက်များဖမ်းယူခြင်းနှင့်အမှားများကိုရှာဖွေရန် Debugging Phase PDOugging Phase တွင် PDO :: ErrMode_Exception ကို enable လုပ်ရန်အကြံပြုသည်။
ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင် အမှားအယွင်းများကိုအသုံးပြုသူများကိုတိုက်ရိုက်ထုတ်လွှင့်ရန်အတွက်ခြွင်းချက်များကိုရှောင်ရှားပြီးနောက် logging ကိုထည့်သွင်းစဉ်းစားသည်။
Database Connection Continue set ကိုမှန်ကန်စွာ Encoding အမှားများကိုရှောင်ရှားရန်မှန်ကန်စွာသတ်မှတ်ထားပါ။
SQL Injection ကိုကာကွယ်ရန် Proprocessing ထုတ်ပြန်ချက်များကိုသုံးပါ ( ပြင်ဆင်ရန် + Execute ) ကိုအသုံးပြုပါ။
အထက်ဖော်ပြပါနည်းလမ်းဖြင့် PDE :: PDO :: Excliter ကိုထိရောက်စွာတိုးတက်အောင်လုပ်ခြင်းနှင့်ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိသည့်အခါအသေးစိတ်အချက်အလက်များကိုအလွယ်တကူဖွင့ ်. ကြည့်ရှုနိုင်ပြီးအသေးစိတ်ကြည့်ရှုနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
PDO