PDO ၏ပုံသေအမှားကိုင်တွယ်ပုံ mode သည် PDO :: ErrMode_silent ဖြစ်သည်။ ဆိုလိုသည်မှာအမှားတစ်ခုဖြစ်ပေါ်ပါက PDO သည်ခြွင်းချက်တစ်ခုကိုတက်ကြွစွာပစ်ချခြင်းမပြုပါ။ ဆိုလိုသည်မှာသင်သည် SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါအမှားတစ်ခုကြုံတွေ့ရပါက PDO သည်အလိုအလျောက်အချက်ပြခြင်းသို့မဟုတ်ချွင်းချက်မချမှတ်နိုင်သော်လည်းအမှားအယွင်းကိုကိုယ်တိုင်စစ်ဆေးရန်လိုအပ်သည်။
အမှားတစ်ခုဖြစ်ပေါ်သောအခါချွင်းချက်များနှင့် debug များကိုသင်ဖမ်းယူလိုပါကမှန်ကန်သောနည်းလမ်းမှာအမှားနည်းလမ်းမှာ PDO ၏အမှားအယွင်းကို PDO :: Ergomode_Exception ကို သတ်မှတ်ရန်ဖြစ်သည်။ ဤနည်းဖြင့် EURE () သို့မဟုတ်အခြားဒေတာဘေ့စ်စစ်ဆင်ရေးနည်းလမ်းကိုကွပ်မျက်ခံရသည့်အခါအမှားတစ်ခုဖြစ်သောအမှားတစ်ခုဖြစ်သည့်အခါအမှားတစ်ခုဖြစ်သည့်အခါတွင်ချွင်းချက်ချခံရလိမ့်မည် ။
PDO ဥပမာတစ်ခုဖန်တီးသည့်အခါ setattribute () နည်းလမ်းကို အသုံးပြု. အမှားကိုင်တွယ်သည့် mode ကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်အောက်ပါကုဒ်များသည်ခြွင်းချက်ကိုင်တွယ်ဖြေရှင်းနည်းကိုပြသသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-comment">// ဖန်တီး PDO နမူနာ,နှင့်ချွင်းချက်မှအမှား mode ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb'</span></span><span>, </span><span><span class="hljs-string">'username'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>);
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">setAttribute</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span>, PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>);
</span><span><span class="hljs-comment">// တစ် ဦး ကွပ်မျက်ခံရ SQL အသေအချာပေြာဆိုချက်</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET name = 'John' WHERE id = 1"</span></span><span>;
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">exec</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-comment">// ချွင်းချက်ဖမ်းနှင့်ကိုင်တွယ်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'ဒေတာဘေ့စ်စစ်ဆင်ရေးမအောင်မြင်ပါ: '</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် PDO :: attr_errmode ကို PDO :: Ergomode_Exception to EruMode_Exception သို့ သတ်မှတ်ခြင်း ,
PDO ၏ပုံမှန်အမှားကိုင်တွယ်သည့်ပုံစံသည်စွမ်းဆောင်ရည်တိုးတက်စေရန်ဖြစ်သည်။ အထူးသဖြင့်အမှားကိုင်တွယ်ရန်မလိုအပ်သည့်အခြေအနေများမလိုအပ်သည့်အခြေအနေတွင်ဖြစ်သည်။ ဥပမာအားဖြင့်, အသုတ် insert စစ်ဆင်ရေးများကွပ်မျက်ခံရသည့်အခါ developer သည်ဒေတာအပိုင်းတစ်ခုစီကိုအောင်မြင်စွာဖြည့်စွက်ထားသည့်အရာတစ်ခုစီကိုဖြည့်စွက်ခြင်းရှိမရှိဂရုမစိုက်ပေ။ ခြွင်းချက်တစ်ခုပစ်ခြင်းသည် code ၏ရှုပ်ထွေးမှုကိုလျော့နည်းစေနိုင်သည်။
သို့သော်, သင်ပိုမိုတင်းကြပ်သောအမှားများကိုပြုလုပ်ရန်လိုအပ်သည့်အခါဒေတာဘေ့စ်လုပ်ငန်းများအပေါ်စစ်ဆေးမှုများပြုလုပ်ရန်လိုအပ်သည့်အခါချွင်းချက် mode ကိုဖွင့်ခြင်းသည်အရေးပါသည်။ ဒီလိုမှမဟုတ်ရင်သင့်ရဲ့ SQL ကြေငြာချက်ကိုမှားယွင်းစွာရေးသားထားရင်တောင် PDO ကမင်းကိုမှားယွင်းတဲ့တစ်ခုခုကိုလှုံ့ဆော်မှာမဟုတ်ဘူး။
၎င်းကိုထုတ်ယူခြင်း ပြင်ပမှအမှားကိုင်တွယ်ခြင်းကိုသာပြုလုပ်နိုင်လိမ့်မည်ဟုသတိပြုသင့်သည်။ အကယ်. သင်ငွေပေးချေမှုအတွင်း၌ exec () ကို အသုံးပြုပါကချွင်းချက်မှန်ကန်စွာမရရှိပါကငွေပေးချေမှု၏ကျူးလွန်မှုသို့မဟုတ် rollback ကိုအလိုအလျောက်လုပ်ဆောင်လိမ့်မည်မဟုတ်ပါ။ အရောင်းအ 0 ယ်များကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်ရန်အတွက်၎င်းကို beginransacingaction () နှင့် ကျူးလွန်ခြင်းနှင့်ပေါင်းစပ်။ သုံးသင့်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">beginTransaction</span></span><span>();
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"UPDATE users SET name = 'Jane' WHERE id = 1"</span></span><span>;
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">exec</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">commit</span></span><span>(); </span><span><span class="hljs-comment">// တင်သွင်းမှုတင်သွင်း</span></span><span>
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">rollBack</span></span><span>(); </span><span><span class="hljs-comment">// ပြန်အရောင်းအလှိမ့်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'ငွေပေးငွေယူပျက်ကွက်: '</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>၎င်းသည်အမှားအယွင်းတစ်ခုဖြစ်ပွားသောအခါအရောင်းအ 0 ယ်များကိုနောက်သို့လှိမ့်ချပြီးဒေတာဘေ့စ်ပြည်နယ်တွင်ရှေ့နောက်ညီညွတ်မှုသေချာနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
PDO