Database Operations အတွက် PHP ၏ MySQLI extension ကိုအသုံးပြုသောအခါ MySQLI_STMT :: $ Insert_id သည်အဓိကအားဖြင့်နောက်ဆုံးသွင်းယူလည်ပတ်မှုဖြင့်ထုတ်လုပ်သည့်အလိုအလျောက်တိုးပွားလာသော ID ကိုရရှိရန်အသုံးပြုသည်။ ပုံမှန်အားဖြင့်, အကယ်. insert ခွဲစိတ်ကုသမှုတစ်ခုပြုလုပ်သောအခါ, အကယ်. စစ်ဆင်ရေးအောင်မြင်နိုင်လျှင် $ Insert_id သည် ထည့်သွင်းထားသောမှတ်တမ်း၏ ID ကိုကိုယ်စားပြုသည့်ကိန်းဂဏန်းတစ်ခုသို့ပြန်ပို့သည်။ သွင်းခြင်းမအောင်မြင်ပါက၎င်းသည် 0 င်သို့မဟုတ်အခြားပုံမှန်မဟုတ်သောတန်ဖိုးများကိုပြန်ပို့သည်။ ဒါကြောင့်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက် MySQLI_STMMT ၏ပြန်လာတန်ဖိုး - $ insert_id သည်မှန်ကန်မှုရှိမရှိဆုံးဖြတ်ရန်မည်သို့ဆုံးဖြတ်ရမည်။
MySQLI_STMT :: $ Insert_id သည် MySQLI_STMT Object ၏ attribute တစ်ခုဖြစ်သည်။ ၎င်းသည်ဤဖော်ပြချက်အရပြုလုပ်ခဲ့သောလတ်တလောသွင်းကုန်စစ်ဆင်ရေးမှထုတ်လုပ်သောအလိုအလျောက်တိုးပွားလာသော ID ကိုသိမ်းဆည်းထားသည်။ ပုံမှန်အားဖြင့်၎င်း၏ပြန်လာတန်ဖိုးများမှာ -
အောင်မြင်စွာထည့်သွင်းပါ။ အလိုအလျောက်တိုးချဲ့ရန်အတွက်အော်တိုတိုးချဲ့ရန်အတွက် - ထည့်သွင်းစံချိန်၏အလိုအလျောက်တိုးပွားလာ ID ကိုပြန်ပို့သည်။
Insert မအောင်မြင်ပါ။ 0 ပြန်လာ 0 ပြန်လာ, သွင်းသည်မအောင်မြင်ပါကအများအားဖြင့်အလိုအလျောက်တိုးခြင်း ID ကိုထုတ်ပေးသည်မဟုတ်ဟုဆိုလိုသည်။
Auto-increment field မပါပဲစစ်ဆင်ရေးကိုထည့်သွင်းပါ - အလိုအလျောက်တိုးချဲ့နယ်ပယ်အစု၏မရှိခြင်း၌ Insert_ID သည် 0 င် 0 င် 0 င် 0 င် 0 င်လိမ့်မည်။
MySQLI_STMT ၏ပြန်လာတန်ဖိုး - $ Insert_id သည်မှန်ကန်မှုရှိ, မရှိဆုံးဖြတ်ရန်မှာသင်သော့ချက်အချက်နှစ်ချက်ကိုနားလည်ရန်လိုအပ်သည်။
ပြန်လာတန်ဖိုး 0 ဟုတ်မဟုတ်ဆုံးဖြတ်သည်။
ထည့်သွင်းစစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ပါ။
အကယ်. Insert စစ်ဆင်ရေးသည်အောင်မြင်ပြီးအလိုအလျောက်တိုးပွားလာသည့်အကွက်တစ်ခုပါ 0 င်ပါက $ Insert_id သည် 0 ထက်ပိုသောကိန်းဂဏန်းကိုပြန်ပို့သင့်သည်။ 0 ဖြစ်ပါကအောက်ပါအခြေအနေများပေါ်ပေါက်လာနိုင်သည်။
Insert လည်ပတ်မှုမအောင်မြင်ပါ (SQL အမှားများ, ပ conflicts ိပက်ခများစသဖြင့်) ။
လက်ရှိဇယားတွင်အလိုအလျောက်တိုးချဲ့လယ်ကွင်းအစုံမရှိပါ။
အဆိုပါသွင်းသွင်းသည်အောင်မြင်ခဲ့ပေမယ့်စားပွဲတင်သည်အော်တို increment field (ဥပမာ - auto_incrent setting မပါ)
ထို့ကြောင့် $ Insert_id 0 ဟုတ်မဟုတ်ဆုံးဖြတ်ရန်အလွန်အရေးကြီးသည်, သို့သော်ဤတစ်ခုတည်းသောအပြည့်အ 0 သည်အပြည့်အ 0 သည်အပြည့်အဝမအတည်ပြုနိုင်ပါ။
ထည့်သွင်းခြင်းစစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိတိကျစွာဆုံးဖြတ်ရန်အတွက် $ insert_id ကို စစ်ဆေးခြင်းအပြင် MySert_IST_ID ကိုစစ်ဆေးရန်အပြင် MySQLI_STMT :: execute () သို့မဟုတ် mySqli_stmt ::
MySQLI_STMT :: Execute () - Execute () - Reward Transfer Execute သည်အောင်မြင်မှုရရန်အောင်မြင်သည်။
MySQLI_STMM :: Temper_rows : ဘေးဒဏ်သင့်သည့်အတန်းအရေအတွက်ကိုပြန်ပို့သည်။ 0 င်ပါက၎င်းသည်မှတ်တမ်းမပါ 0 င်ကြောင်းဆိုလိုသည်။ SQL ကြေငြာချက်ကိုအောင်မြင်စွာကွပ်မျက်ခံရရင်တောင်,
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အကန့်အ သတ် များချိုးဖောက်ခြင်း ,
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"user"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO my_table (name, age) VALUES (?, ?)"</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_param</span></span><span>(</span><span><span class="hljs-string">"si"</span></span><span>, </span><span><span class="hljs-variable">$name</span></span><span>, </span><span><span class="hljs-variable">$age</span></span><span>);
</span><span><span class="hljs-comment">// parameters တွေကိုချည်နှောင်ခြင်းနှင့် execute</span></span><span>
</span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-string">"John"</span></span><span>;
</span><span><span class="hljs-variable">$age</span></span><span> = </span><span><span class="hljs-number">25</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>()) {
</span><span><span class="hljs-comment">// အောင်မြင်စွာကွပ်မျက်,စစ်ဆေးကြည့်ရှု insert_id</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>->insert_id > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အောင်မြင်စွာထည့်ပါ,ဖြစ်သော ID ဟုတ်ကဲ့: "</span></span><span> . </span><span><span class="hljs-variable">$stmt</span></span><span>->insert_id;
} </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-string">"အောင်မြင်စွာထည့်ပါ,ဒါပေမယ့်အဘယ်သူမျှမအလိုအလျောက်တိုးထုတ်ပေးသည် ID。"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// Execution မအောင်မြင်ပါ,output error message</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">$stmt</span></span><span>->error;
}
</span><span><span class="hljs-comment">// ရုပ်သိမ်းခြင်း statement နှင့်ဆက်သွယ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>အထက်ပါကုဒ်တွင်ထည့်သွင်းမှုပြုလုပ်ပြီးနောက်ကျွန်ုပ်တို့သည်ပထမ ဦး ဆုံး ဒေါ်လာ stmt-> Insert_id ကို ပထမဆုံးစစ်ဆေးသည်။ အကယ်. ပြန်လာသောတန်ဖိုးသည် 0 ထက်ကြီးပါက, ထည့်သွင်းသည်အောင်မြင်မှုပြီးအော်တိုတိုးချဲ့ ID ကိုထုတ်လုပ်သည်။ အကယ်. ပြန်လာသောတန်ဖိုးသည် 0 ဖြစ်ပါကထည့်သွင်းမှုစစ်ဆင်ရေးမအောင်မြင်ပါကသို့မဟုတ်ထည့်သွင်းထားသောဇယားသည်အလိုအလျောက်တိုးချဲ့ထားသောအစုအဝေးမရှိပါ။
Insert_id ကို စစ်ဆေးခြင်းမပြုမီ Insert သည်အမှန်တကယ်ကွပ်မျက်ခံရသည်ကိုထပ်မံဆုံးဖြတ်ရန်အတွက် ဘေးဒဏ်သင့်မှုကို အသုံးပြုရန်အကောင်းဆုံးဖြစ်သည်။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>()) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>->affected_rows > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အောင်မြင်စွာထည့်ပါ,ဖြစ်သော ID ဟုတ်ကဲ့: "</span></span><span> . </span><span><span class="hljs-variable">$stmt</span></span><span>->insert_id;
} </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-string">"မအောင်မြင်ပါ:အဘယ်သူမျှမမှတ်တမ်းထည့်သွင်းထားသည်。"</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-string">"Execution မအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$stmt</span></span><span>->error;
}
</span></span>ခြွင်းချက်များကိုဖမ်းရန် ပို. ယုံကြည်စိတ်ချစွာ ဖမ်းဆီးရန်ကြိုးစားခြင်းသည် ဒေတာဘေ့စ်ဆက်သွယ်မှုအမှားများသို့မဟုတ် SQL အမှားများကိုဖမ်းရန်အသုံးပြုနိုင်သည်။ MySQLI ကိုယ်တိုင်က Try-Catch Mericism ကိုမထောက်ပံ့သော်လည်းအပြောင်းအလဲများအတွက်ထုံးစံနည်းလမ်းများအတွက်ခြွင်းချက်များကိုကျွန်ုပ်တို့ချွင်းနိုင်သည်။
<span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO my_table (name, age) VALUES (?, ?)"</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_param</span></span><span>(</span><span><span class="hljs-string">"si"</span></span><span>, </span><span><span class="hljs-variable">$name</span></span><span>, </span><span><span class="hljs-variable">$age</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">execute</span></span><span>()) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"မအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$stmt</span></span><span>->error);
}
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>->insert_id > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အောင်မြင်စွာထည့်ပါ,ဖြစ်သော ID ဟုတ်ကဲ့: "</span></span><span> . </span><span><span class="hljs-variable">$stmt</span></span><span>->insert_id;
} </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-string">"အောင်မြင်စွာထည့်ပါ,ဒါပေမယ့်အဘယ်သူမျှမအလိုအလျောက်တိုးထုတ်ပေးသည် ID。"</span></span><span>;
}
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</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>MySQLI_STMT :: $ insert_id သည် မှန်ကန်မှုရှိမရှိဆုံးဖြတ်ရန်မှာ Return Value သည် 0 င် ဟုတ်မဟုတ်ကိုကျွန်ုပ်တို့သာမှီခိုအား ထား. မရပါ, ခွဲစိတ်မှု၏မှန်ကန်မှုကိုသေချာစေရန်, execute () နှင့် ဘေးဒဏ်သင့်သည့်ဘေးဒဏ်သင့်မှု ၏ပြန်လည်နေရာချထားခြင်းတန်ဖိုးကိုတစ်ချိန်တည်းတွင်စစ်ဆေးရန်နှင့်သင့်လျော်သောခြွင်းချက်ကိုင်တွယ်ယန္တရားများမှတစ်ဆင့်ဖြစ်နိုင်ချေအမှားများကိုစစ်ဆေးရန်အကြံပြုပါသည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli_stmt