<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤဆောင်းပါးသည်ကုဒ်နှင့်လုံးဝမသက်ဆိုင်ပါ,ဆောင်းပါးအကြောင်းအရာကိုသာ output ကိုသုံးရန်အသုံးပြုသည်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> <span class="hljs-string"><<<EOT
<h1>အသုံးပြုPDOဒေတာများကိုမွမ်းမံသည့်အခါအဘယျသို့အမှားအယွင်းများနှင့်ဖြေရှင်းချက်များကဘာတွေလဲ?</h1>
<hr>
<p>တည်နေPHPဖွံ့ဖြိုးမှုအောက်မှာ,PDO(PHP Data Objects)၎င်း၏လုံခြုံရေးနှင့်သယ်ဆောင်ရန်ကြောင့်ဖြစ်သည်,၎င်းကိုဒေတာဘေ့စ်လုပ်ငန်းများတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်。当我们အသုံးပြုPDOဒေတာ update ကို,အမှားအယွင်းများအချို့ရှိသည်,အကယ်. အချိန်မီတွင်တည်ရှိပြီးဖြေရှင်းနိုင်လျှင်,ဒေတာကိုမကိုက်ညီစေရန်ဖြစ်စေနိုင်သည်,ပင်လုံခြုံမှုအန္တရာယ်များကိုဖြစ်ပေါ်စေသည်。ဤဆောင်းပါးသည်သာမန်အမှားများနှင့်သက်ဆိုင်ရာဖြေရှင်းနည်းများကိုအကျဉ်းချုပ်ဖော်ပြလိမ့်မည်。</p>
<h2>1. 忘记အသုံးပြု预处理语句中的参数绑定</h2>
<p>很多初学者တည်နေ书写更新语句时,တိုက်ရိုက် splice variable တွေကိုSQLstring ကို၌တည်၏,ဥပမာအားဖြင့်:</p>
<pre><code>\$sql = "UPDATE users SET email = '\$email' WHERE id = \$id";
\$pdo->exec(\$sql);
ဤစာအရေးအသားနည်းလမ်းသည်အလွယ်တကူ SQL ဆေးထိုးခြင်းအန္တရာယ်ကိုအလွယ်တကူဖြစ်ပေါ်စေရုံသာမက variable သည်အထူးအက္ခရာများပါ 0 င်သောကြောင့်မွမ်းမံမှုများဖြစ်ပေါ်စေနိုင်သည်။ ဤသို့ပြုလုပ်ရန်မှန်ကန်သောနည်းလမ်းမှာ placevershers နှင့် b နှောင်ကိုအသုံးပြုရန်ဖြစ်သည်။
\$sql = "UPDATE users SET email = :email WHERE id = :id";
\$stmt = \$pdo->prepare(\$sql);
\$stmt->execute([':email' => \$email, ':id' => \$id]);
အချို့သော developer များသည် SQL ကြေငြာချက်ကိုပြင်ဆင်ပြီးနောက် () parameters များကိုပြင်ဆင်ပြီးနောက် () execute လုပ်ထားရန်မေ့လျော့ခဲ့သည်။ binding ပြီးနောက် $ stmt-> execute () () ကို call ဖို့သေချာပါစေ။
ဥပမာအားဖြင့်, seet အဖြစ် set ကို set, သို့မဟုတ်အခြေအနေများ ဘယ်မှာ ပျောက်ဆုံးနေ။ ဖြေရှင်းနည်းမှာကောင်းမွန်သောအသုံးပြုမှု ကို ကောင်းစွာအသုံးပြုရန်ဖြစ်သည် ။ ခြွင်းချက်များကိုဖမ်းရန်ဖမ်းယူခြင်း နှင့် ,
အကယ် . အီးမေးလ်ကို SQL ကြေ ငြာချက်တွင်အသုံးပြုသည်။ SQL တွင် parameter nameter name ကိုချည်ထားသောခင်းကျင်းခလုတ်နှင့်ကိုက်ညီရမည်။
PDO သည်ပုံမှန်အားဖြင့်ခြွင်းချက်များကို default မှပစ်ချလိမ့်မည်မဟုတ်ပါ။ အမှားအယွင်းများစွာကိုရှာဖွေရန်ခက်ခဲစေသည်။ PDO ဥပမာတစ်ခုဖန်တီးသောအခါအမှား mode ကို enable လုပ်ရန်အကြံပြုသည်။
\$pdo = new PDO(\$dsn, \$user, \$pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
ဤနည်းအားဖြင့်အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါပြ problem နာကိုပိုမိုမြန်ဆန်စွာတည်ရှိနိုင်သည်။
Update လည်ပတ်မှုတွင်အသင့်တော်ဆုံးမရှိလျှင် မည်သည့် အခြေအနေတွင်မည်သည့်နေရာတွင်မသင့်လျော်ပါကစားပွဲတစ်ခုလုံး၏အချက်အလက်များကိုအမှားဖြင့်မွမ်းမံနိုင်သည်။ ဘေးထွက်ဆိုးကျိုးအကျိုးဆက်များကိုရှောင်ရှားရန်အခြေအနေများမှန်ကန်မှုရှိမရှိသေချာစစ်ဆေးပါ။
ဒေတာ update အတွက် PDO ကိုအသုံးပြုသောအခါ, အများအားဖြင့်အမှားများတွင် - parameter binding ကိုအသုံးမပြု, () , sql syntax အမှားများ, မကိုက်ညီသော paramax အမှားများ, ဤဘုံပြ problems နာများနှင့်ဖြေရှင်းနည်းများကိုကျွမ်းကျင်သူများသည် developer များလျင်မြန်စွာရှာဖွေတွေ့ရှိရန်ကူညီနိုင်ပြီး၎င်းတို့၏ကုဒ်၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုတိုးတက်စေစဉ် update ပျက်ကွက်မှုပြ problems နာများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိနိုင်ပြီးဖြေရှင်းနိုင်သည်။
eot;သက်ဆိုင်သောတက်(ဂ်)များ:
PDO