PHP အတွက် MySQLI extensions များကိုအသုံးပြုသောအခါ developer များမကြာခဏ databases နှင့်အတူအပြန်အလှန်ဆက်သွယ်ရန်လိုအပ်သည်။ MySQLI သည် MySQLI_STMT :: Store_result သည်စုံစမ်းမှုရလဒ်ကိုပြန်လည်ရယူရန်အတွက်အရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်အသုံးပြုမှုအခြေအနေများ, လိုအပ်ချက်များကိုအသေးစိတ်လေ့လာသုံးသပ်လိမ့်မည် ။
MySQLI တွင် SQL Query များကိုကွပ်မျက်ပြီးနောက်ရလဒ်များကို MySQLI_STMT အရာဝတ်ထုများမှတဆင့်ရရှိနိုင်သည်။ အထူးသဖြင့်စုံစမ်းမှုကွပ်မျက်ခံရပြီးနောက်ရလဒ်များကိုဆာဗာ၏မှတ်ဉာဏ်တွင်သိမ်းဆည်းထားသည်။ ပုံမှန်အားဖြင့် MySQLI သည် Query ရလဒ်များကိုသိမ်းဆည်းရန် client-side buffering ကိုအသုံးပြုသည်။ သို့သော်ဤချဉ်းကပ်မှုသည်ရိုးရိုးရှင်းရှင်းမေးမြန်းခြင်းအတွက်ရိုးရိုးရှင်းရှင်းမေးမြန်းခြင်းအတွက်သင့်လျော်သည်။ အချက်အလက်များကိုအကြိမ်ကြိမ်ရယူရန်လိုအပ်ပါကသို့မဟုတ်ပိုမိုကြီးမားသောဒေတာအစုများနှင့်အလုပ်လုပ်သောအခါ MySQLI သည် 0 န်ဆောင်မှုခံယူသူ၏အချက်အလက်များကိုအတိအလင်း cache ကိုအတိအလင်းသိမ်းဆည်းရန် Store_Result နည်းလမ်းကိုပေးသည်။
MySQLI_STMT :: Store_Result သည် MySQLI မှ cache ကို cache ကို cache လုပ်ဆောင်ရန်စုံစမ်းမှုရလဒ်များသည် client မှ client သို့ရောက်ရှိလာခြင်းဖြစ်သည်။ ဆိုလိုသည်မှာဤလုပ်ဆောင်ချက်ကိုဖုန်းဆက်ပြီးနောက် developer များသည်ဆာဗာ၏ cursor ယန္တရားကိုမှီခိုခြင်းမရှိဘဲ developer များကရလဒ်များကိုမျဉ်းကြောင်းဖြင့်ဖတ်နိုင်သည်။
Store_result ကို ခေါ်ပြီးနောက်ရလဒ်လိုင်းများအားလုံးသည်မှတ်ဉာဏ်တွင်သိုလှောင်ထားလိမ့်မည်။ developer များကရှာဖွေရေး,
အောက်ပါအခြေအနေများတွင် MySQLI_STMMT :: Store_Result လိုအပ်သည်။
သင်စုံစမ်းမှုတစ်ခုပြုလုပ်ရန်နှင့်ရလဒ်ကိုရယူရန်လိုအပ်သည့်အခါ ရလဒ်ကို အကြိမ်ကြိမ်သတ်မှတ်ရန်လိုအပ်သည်။ Store_result ကို မခေါ်ဘဲ, သင်ရလဒ်အနေဖြင့်အချက်အလက်အမြောက်အများကိုပြုပြင်သည့်အခါတိုင်းအချက်အလက်များကိုတိုင်းတာတိုင်းအချက်အလက်များကိုအတန်းဖြင့်ရရန်ဆာဗာကိုမှီခိုအားထားနိုင်သည်။
ဥပမာအားဖြင့်, စုံစမ်းမှုရလဒ်များကိုကွင်းဆက်တစ်ခုတွင်အကြိမ်ပေါင်းများစွာလုပ်ဆောင်ရန်လိုအပ်သည့်အခါ Store_result ကို ဖုန်းခေါ်ဆိုခြင်းများကိုခေါ်ဆိုခြင်းအချက်အလက်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်ပြီးအကြိမ်ပေါင်းများစွာ 0 င်ရောက်နိုင်သည်။
<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">"SELECT id, name FROM users"</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-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">store_result</span></span><span>(); </span><span><span class="hljs-comment">// ခေါ်ရမည် store_result</span></span><span>
</span><span><span class="hljs-comment">// ယခုရလဒ်အစုကိုမှလက်လှမ်းမီမှု</span></span><span>
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_result</span></span><span>(</span><span><span class="hljs-variable">$id</span></span><span>, </span><span><span class="hljs-variable">$name</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch</span></span><span>()) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ID: <span class="hljs-subst">$id</span></span></span><span>, Name: </span><span><span class="hljs-subst">$name</span></span><span>\n";
}
</span></span>Query သည်အတန်းများသို့မဟုတ်ကော်လံမျိုးစုံကိုပြန်လည်ရောက်ရှိလာသောအခါ Store_result ကို အသုံးပြု. အချက်အလက်အားလုံးကိုသိမ်းဆည်းထားပြီးဒေသအလိုက်ကိုထိထိရောက်ရောက်ပြုပြင်နိုင်သည်။ အကယ်. Store_Result ကိုမခေါ်ပါကအချက်အလက်များကိုလိုင်းဖြင့်သာရယူနိုင်ပြီးအပြောင်းအလဲလုပ်ခြင်းလုပ်ငန်းစဉ်သည်နှေးကွေးပြီးရှုပ်ထွေးသည်။
Paging Query အတွက် ကန့်သတ်ချက် သို့မဟုတ် offset clause ကိုအသုံးပြုသောအခါ Stage_Result ကို ခေါ်ဆိုခြင်းစတိုးခေါ်ဆိုခြင်းကရလဒ်အားလုံးကိုမှတ်ဉာဏ်တွင်သိမ်းဆည်းလိမ့်မည်။ ဤနည်းအားဖြင့်သင်သည် (ဥပမာအားဖြင့် Pagination ကဲ့သို့) ရှာဖွေမှုဆိုင်ရာလုပ်ငန်းများကိုလုပ်ဆောင်ရန်လိုအပ်လျှင်ပင်ရလဒ်ကိုအလွယ်တကူဝင်ရောက်ကြည့်ရှုနိုင်အောင်ပြုလုပ်နိုင်သည်။
<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">"SELECT id, name FROM users LIMIT 10 OFFSET 20"</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-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">store_result</span></span><span>();
</span></span>အချို့ဖြစ်ရပ်များတွင်စုံစမ်းမှုရလဒ်အလုံးအရင်းသည်အလွန်ကြီးမားသော်ဖြစ်လျှင်ဒေတာဘေ့စ်ဆာဗာသည်အချက်အလက်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့မတင်မည့်အစားအချက်အလက်အချို့ကိုသိုလှောင်ထားနိုင်သည်။ Store_Result ကို ခေါ်ခြင်းအားဖြင့်ရလဒ်အားလုံးသည်မှတ်ဥာဏ်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်သွင်းထားကြောင်း,
MySQLI သည် Query Real ားကိုလိုင်းအားဖြင့်တန်းစီရန်ပုံမှန်အားဖြင့် cursor ယန္တရားကိုအသုံးပြုသည်။ အကယ်. သိုလှောင်မှုကို မခေါ်ပါကရလဒ်ကိုဖြတ်သန်းသွားသောလုပ်ငန်းစဉ်တွင်ရှာဖွေမှုကိုမခေါ်ပါကအချက်အလက်ဆုံးရှုံးမှုဖြစ်စဉ်တွင်အချက်အလက်ဆုံးရှုံးမှုဖြစ်နိုင်သည်။ ထို့ကြောင့် store_result ကို ခေါ်ဆိုခြင်းသည်စုံစမ်းမှုရလဒ်များပြီးပြည့်စုံပြီးအချက်အလက်များမပျောက်ဆုံးစေရန်အတွက်အဓိကခြေလှမ်းတစ်ခုဖြစ်သည်။
MySQL configurations အချို့ (ဥပမာအားဖြင့် client buffering ကို disable လုပ်ခြင်းကဲ့သို့သော) သည်ပုံမှန် query quere ရလဒ်များကိုအကျိုးသက်ရောက်နိုင်သည်။ ဤကိစ္စတွင် Store_result ကို ခေါ်ဆိုခြင်း CONESTIONSATE နှင့် Portable သည် server configurations များကြောင့်ရှေ့နောက်မညီသောစုံစမ်းမှုအပြုအမူများကိုရှောင်ရှားရန်,
Store_result သည်အရေးကြီးသော်လည်းစုံစမ်းမှုတိုင်းဟုခေါ်ရန်မလိုအပ်ပါ။ အကယ်. သင်သည်စုံစမ်းမှုတစ်ခုသာလျှင်တစ်ကြိမ်သာမေးမြန်းခြင်းနှင့်ရလဒ်အနည်းငယ်ကိုဖတ်ရန်လိုအပ်ပါကဤအဆင့်ကိုကျော်သွားနိုင်သည်။ ဥပမာအားဖြင့် , အကယ် . သင်သည် Selected query ကို execute လုပ်ပြီး Right Line Reals မှ သာအာရုံစိုက်ပါက,
<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">"SELECT name FROM users WHERE id = ?"</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">"i"</span></span><span>, </span><span><span class="hljs-variable">$user_id</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-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">bind_result</span></span><span>(</span><span><span class="hljs-variable">$name</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span>;
</span></span>ဤကိစ္စတွင် MySQLI သည်လက်ဖြင့် စတိုးဆိုင်များကို လက်ဖြင့်ခေါ်ဆိုခြင်းမရှိဘဲရလဒ်ကိုအလိုအလျောက်လုပ်ဆောင်သည်။
Store_Result ကို ခေါ်ဆိုခြင်းကရလဒ်အားလုံးကို 0 န်ဆောင်မှုခံယူသူအားတစ်ချိန်တည်းတွင်တင်လိမ့်မည်။ သင်၏မေးမြန်းခြင်းသည်အချက်အလက်အမြောက်အများကိုပြန်လည်ရောက်ရှိပါက Store_Result ကို အသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်ပျက်စီးခြင်းသို့မဟုတ်မှတ်ဥာဏ်လျှံကိုပင်ဖြစ်ပေါ်စေနိုင်သည်။ ဤကိစ္စတွင်ရလဒ်များကို cache အစား (ဥပမာ MySQLI_ST_RESURT_RESFult နှင့် Fetch ) ကိုရယူရန်အတွက် streaming ကိုအသုံးပြုရန်အကြံပြုသည်။
MySQLI_STMT :: Store_Result သည် MySQLI extension တွင်အဓိကအသုံးပြုသော MySQLI extension တွင်အဓိကအားဖြင့် cache query မှ client သို့ Client သို့အသုံးပြုသည်။ ရလဒ်များကိုရှာဖွေခြင်းသို့မဟုတ်ကော်လံများအပါအ 0 င်ရလဒ်များကိုရှာဖွေခြင်းရလဒ်များကိုရှာဖွေခြင်းကိုကြည့်ရှုနိုင်သည့်အခြေအနေများတွင်အရေးပါသောအခန်းကဏ် plays မှပါ 0 င်သည်။ မည်သို့ပင်ဆိုစေကာမူ developer များ developer များကမူ၎င်းကိုအမှန်တကယ်အခြေအနေပေါ် မူတည်. မည်သို့ခေါ်ဆိုရမည် ကို ဆုံးဖြတ်သင့်သည်။ ဤလုပ်ဆောင်မှုကိုမည်သည့်အချိန်တွင်အသုံးပြုမည်ကိုနားလည်ခြင်းနှင့်၎င်း၏စွမ်းဆောင်ရည်သက်ရောက်မှုကိုထိရောက်စွာရေးရန်ကူညီရန်အထောက်အကူပြုသည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli_stmt