ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI တိုးချဲ့ခြင်းကိုအသုံးပြုသောအခါ SQL ကြေငြာချက်ပြီးဆုံးပြီးနောက်ထိခိုက်ဒဏ်ရာရမည့်အတန်းအရေအတွက်ကိုရရှိရန် MySQLI :: $ ဘေးဒဏ်သင့်သည့် ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုအသုံးပြုလေ့ရှိသည်။ ဤအိမ်ခြံမြေသည်ထည့်သွင်းခြင်း, မွမ်းမံခြင်းသို့မဟုတ်ဖျက်ခြင်းပြုလုပ်ပြီးနောက်ပြောင်းလဲမှုများပြုလုပ်ပြီးနောက်ပြောင်းလဲထားသောဒေတာဘေ့စ်မှတ်တမ်း၏အမှန်တကယ်အရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။ သို့သော်ဒေတာများကိုအောင်မြင်စွာဖြည့်စွက်လျှင်ပင် MySQLI :: $ ဘေးဒဏ်သင့်သည့် ဘေးဒဏ်သင့်မှုသည် 0 င်သက်ရောက်မှုများ 0 င်လာကြောင်းတွေ့ရှိရသည်။ ဒီတော့ဒီအကြောင်းပြချက်ကဘာလဲ။ ဤဆောင်းပါးသည်ပြ the နာကိုအလျင်အမြန်ရှာဖွေရန်အထောက်အကူပြုရန်ဘုံအကြောင်းပြချက်များစွာကိုလေ့လာသုံးသပ်လိမ့်မည်။
Insert တစ်ခုကို အသုံးပြုခြင်းသို့မဟုတ် SQL ကြေငြာချက်ကို အစားထိုး သောအခါထည့်သွင်းထားသောမှတ်တမ်းသည်လက်ရှိစံချိန်သို့မဟုတ်ထူးခြားသောအညွှန်းကိန်းကဲ့သို့သောထူးခြားမှုကိုချိုးဖောက်ပါကဒေတာဘေ့စ်သည်ထည့်သွင်းခြင်းမပြုပါ။ ဤအချိန်တွင် SQL ကြေငြာချက်ကိုကွပ်မျက်ခံရသော်လည်း RIV ကို ဒေ တာဘေ့စ်သို့မည်သည့်အတန်းထဲသို့ထည့်သွင်းခြင်းမဟုတ်ပါ။
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT IGNORE INTO users (id, name) VALUES (1, 'Alice')"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">mysqli_query</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>, </span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli_affected_rows</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>); </span><span><span class="hljs-comment">// လှျင် ID အတွက် 1 အသုံးပြုသူရှိပြီးသား,ပြန်လာ 0</span></span><span>
</span></span>
Auto_incroment AutoleOnement Field ကို အသုံးပြုသည့်အခါ Inserted Record Data သည်လယ်ပြုပြင်ရန်အတွက်မအောင်မြင်ပါက, သင်ထည့်သွင်းထားသော အချက်အလက်များ သည် 00 00 သို့ရောက်သောအခါ,
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (id, name) VALUES (1, 'Alice')"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">mysqli_query</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>, </span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli_affected_rows</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>); </span><span><span class="hljs-comment">// လှျင် ID အတွက် 1 စံချိန်ရှိပြီးသား,ပြန်လာ 0</span></span><span>
</span></span>
တခါတရံတွင် Insert ထုတ်ပြန်ချက်ကွပ်မျက်ခံရသည့်အခြေအနေများကြုံတွေ့ရသောအခြေအနေများ နှင့် သင်ကြုံတွေ့ရနိုင်သည်။ ဖြည့်စွက်ထားသောအချက်အလက်များသည်တည်ရှိပြီးတည်ရှိပြီးထူးခြားမှုကိုအက န့ ် အ သတ်ဖြင့်မချိုးဖောက်ပါက,
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (id, name) VALUES (1, 'Alice')"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">mysqli_query</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>, </span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli_affected_rows</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>); </span><span><span class="hljs-comment">// လှျင် ID 1 စံချိန်ရှိပြီးသား并且没有违反唯一约束,ပြန်လာ 0</span></span><span>
</span></span>
ငွေပေးငွေယူကိုအသုံးပြုသောအခါထည့်သွင်းမှုကျူးလွန်ပြီးနောက် Insert လည်ပတ်မှုသည်အကျိုးသက်ရောက်လိမ့်မည်။ ငွေပေးချေမှုဆိုင်ရာကွပ်မျက်မှုတွင်အမှားတစ်ခုဖြစ်ပွားပါက Insert ထုတ်ပြန်ချက်သည်အောင်မြင်စွာကွပ်မျက်ခံရပုံရသည်ဆိုလျှင်ပင်ဒေတာဘေ့စ်သည်မည်သည့်အချက်အလက်မဆိုဒေတာဘေ့စ်ကိုမထည့်ပါ။ ထို့ကြောင့် ထိခိုက်နစ်နာမှုများလည်း 0 ဖြစ်နိုင်သည်။
<span><span><span class="hljs-title function_ invoke__">mysqli_begin_transaction</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>);
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (name) VALUES ('Alice')"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">mysqli_query</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>, </span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-comment">// အချို့သောအခြေအနေက Rollback အစပျိုးခြင်းဆိုပါစို့</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mysqli_rollback</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli_affected_rows</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>); </span><span><span class="hljs-comment">// ပြန်လာ 0,因အတွက်事务已回滚</span></span><span>
</span></span>
MySQLI နှင့် SQL ကိုကွပ်မျက်သည့်အခါတစ်ခါတစ်ရံဒေတာဘေ့စ်ဆက်သွယ်မှုသည်အောင်မြင်မှုရှိ, မရှိစစ်ဆေးသည်။ MySQLI_QUERY () ကွပ်မျက်မှုမအောင်မြင်ပါကပြန်လာသော ဘေးဒဏ်သင့်သူများသည် 0 င်ဖြစ်ဖွယ်ရှိသည်။ ထို့ကြောင့်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါ SQL အမှားများသို့မဟုတ်ဒေတာဘေ့စ်ဆက်သွယ်မှုဆိုင်ရာပြ issues နာများမရှိစေရန်စုံစမ်းမှုတစ်ခုစီ၏ရလဒ်များကိုသေချာစစ်ဆေးပါ။
<span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (name) VALUES ('Alice')"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysqli_query</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>, </span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"SQL Execution မအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mysqli_error</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli_affected_rows</span></span><span>(</span><span><span class="hljs-variable">$link</span></span><span>);
}
</span></span>
အချို့သောဒေတာဘေ့စ်ချိန်ညှိချက်များသည် 0 င်သို့ရောက်ရှိလာရန် စိတ် ထိခိုက်စေနိုင်သည် ။ ဥပမာအားဖြင့်, အကယ်. stritt_trans_tabres mode ကိုဖွင့်ပြီးထည့်သွင်းထားသည့်အချက်အလက်များသည်အချို့သောကန့်သတ်ချက်များကိုချိုးဖောက်ပါက MySQL သည် 0 င်သို့ 0 ငအနေဖြင့်ထည့်သွင်းခြင်း,
PHP ၏ MySQLI extension ကိုအသုံးပြုသောအခါ MySQLI :: above_rows ပြန်လာသည့်အတွက် 0 0 ပြန်လာသည့်ဘေးဒဏ်သင့်မှု ၏အကျိုးသက်ရောက်မှုကိုကြုံတွေ့ရခြင်းသည်အဆန်းမဟုတ်ချေ။ ပုံမှန်အားဖြင့် SQL ထုတ်ပြန်ချက်များကိုကွပ်မျက်မှုသည်ဒေတာဘေ့စ်ရှိအချက်အလက်များကိုမပြောင်းလဲနိုင်ကြောင်းဖော်ပြသည်။ ဤပြ problem နာကိုဖြေရှင်းသည့်အခါ SQL ကြေငြာချက်ကဲ့သို့သောရှုထောင့်မျိုးစုံ, ဒေတာဘေ့စ် settings, database settings များ,
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli