လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: Store_Result function ကိုဘယ်အချိန်မှာခေါ်ရမလဲ။ ၎င်း၏အသုံးပြုမှုမြင်ကွင်းများနှင့်လိုအပ်ချက်များကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာ

MySQLI_STMT :: Store_Result function ကိုဘယ်အချိန်မှာခေါ်ရမလဲ။ ၎င်း၏အသုံးပြုမှုမြင်ကွင်းများနှင့်လိုအပ်ချက်များကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာ

gitbox 2025-09-17

PHP အတွက် MySQLI extensions များကိုအသုံးပြုသောအခါ developer များမကြာခဏ databases နှင့်အတူအပြန်အလှန်ဆက်သွယ်ရန်လိုအပ်သည်။ MySQLI သည် MySQLI_STMT :: Store_result သည်စုံစမ်းမှုရလဒ်ကိုပြန်လည်ရယူရန်အတွက်အရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်အသုံးပြုမှုအခြေအနေများ, လိုအပ်ချက်များကိုအသေးစိတ်လေ့လာသုံးသပ်လိမ့်မည်

1 ။ စုံစမ်းမှုကိုဘယ်လိုရယူရမလဲ MySQLI အတွက်ရလဒ်များရယူနည်း

MySQLI တွင် SQL Query များကိုကွပ်မျက်ပြီးနောက်ရလဒ်များကို MySQLI_STMT အရာဝတ်ထုများမှတဆင့်ရရှိနိုင်သည်။ အထူးသဖြင့်စုံစမ်းမှုကွပ်မျက်ခံရပြီးနောက်ရလဒ်များကိုဆာဗာ၏မှတ်ဉာဏ်တွင်သိမ်းဆည်းထားသည်။ ပုံမှန်အားဖြင့် MySQLI သည် Query ရလဒ်များကိုသိမ်းဆည်းရန် client-side buffering ကိုအသုံးပြုသည်။ သို့သော်ဤချဉ်းကပ်မှုသည်ရိုးရိုးရှင်းရှင်းမေးမြန်းခြင်းအတွက်ရိုးရိုးရှင်းရှင်းမေးမြန်းခြင်းအတွက်သင့်လျော်သည်။ အချက်အလက်များကိုအကြိမ်ကြိမ်ရယူရန်လိုအပ်ပါကသို့မဟုတ်ပိုမိုကြီးမားသောဒေတာအစုများနှင့်အလုပ်လုပ်သောအခါ MySQLI သည် 0 န်ဆောင်မှုခံယူသူ၏အချက်အလက်များကိုအတိအလင်း cache ကိုအတိအလင်းသိမ်းဆည်းရန် Store_Result နည်းလမ်းကိုပေးသည်။

2 ။ mysqli_stmm :: Store_result ကဘာလဲ။

MySQLI_STMT :: Store_Result သည် MySQLI မှ cache ကို cache ကို cache လုပ်ဆောင်ရန်စုံစမ်းမှုရလဒ်များသည် client မှ client သို့ရောက်ရှိလာခြင်းဖြစ်သည်။ ဆိုလိုသည်မှာဤလုပ်ဆောင်ချက်ကိုဖုန်းဆက်ပြီးနောက် developer များသည်ဆာဗာ၏ cursor ယန္တရားကိုမှီခိုခြင်းမရှိဘဲ developer များကရလဒ်များကိုမျဉ်းကြောင်းဖြင့်ဖတ်နိုင်သည်။

Store_result ကို ခေါ်ပြီးနောက်ရလဒ်လိုင်းများအားလုံးသည်မှတ်ဉာဏ်တွင်သိုလှောင်ထားလိမ့်မည်။ developer များကရှာဖွေရေး,

3 ။ Store_Result ၏အခြေအနေများကိုသုံးပါ

အောက်ပါအခြေအနေများတွင် MySQLI_STMMT :: Store_Result လိုအပ်သည်။

3.1 စုံစမ်းမှုရလဒ်များအတွက်လက်လှမ်းမီမှုများစွာလိုအပ်သည်

သင်စုံစမ်းမှုတစ်ခုပြုလုပ်ရန်နှင့်ရလဒ်ကိုရယူရန်လိုအပ်သည့်အခါ ရလဒ်ကို အကြိမ်ကြိမ်သတ်မှတ်ရန်လိုအပ်သည်။ 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>-&gt;</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>-&gt;</span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();
</span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</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>-&gt;</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>-&gt;</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>

3.2 ရလဒ်အစုသည်အတန်းမျိုးစုံအတန်းသို့မဟုတ်ကော်လံများပါ 0 င်သည်

Query သည်အတန်းများသို့မဟုတ်ကော်လံမျိုးစုံကိုပြန်လည်ရောက်ရှိလာသောအခါ Store_result ကို အသုံးပြု. အချက်အလက်အားလုံးကိုသိမ်းဆည်းထားပြီးဒေသအလိုက်ကိုထိထိရောက်ရောက်ပြုပြင်နိုင်သည်။ အကယ်. Store_Result ကိုမခေါ်ပါကအချက်အလက်များကိုလိုင်းဖြင့်သာရယူနိုင်ပြီးအပြောင်းအလဲလုပ်ခြင်းလုပ်ငန်းစဉ်သည်နှေးကွေးပြီးရှုပ်ထွေးသည်။

3.3 ကန့်သတ်ချက်သို့မဟုတ် offset ကို query တွင်ထည့်သွင်းပါက

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>-&gt;</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>-&gt;</span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();
</span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">store_result</span></span><span>();
</span></span>

4 ။ အဘယ်ကြောင့် Store_result ကို ခေါ်ရန်လိုအပ်သနည်း။

4.1 မှတ်ဉာဏ်မလုံလောက်မှုပြ the နာကိုဖြေရှင်းပါ

အချို့ဖြစ်ရပ်များတွင်စုံစမ်းမှုရလဒ်အလုံးအရင်းသည်အလွန်ကြီးမားသော်ဖြစ်လျှင်ဒေတာဘေ့စ်ဆာဗာသည်အချက်အလက်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့မတင်မည့်အစားအချက်အလက်အချို့ကိုသိုလှောင်ထားနိုင်သည်။ Store_Result ကို ခေါ်ခြင်းအားဖြင့်ရလဒ်အားလုံးသည်မှတ်ဥာဏ်အားလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်သွင်းထားကြောင်း,

4.2 ဒေတာဆုံးရှုံးမှုကိုကာကွယ်တားဆီး

MySQLI သည် Query Real ားကိုလိုင်းအားဖြင့်တန်းစီရန်ပုံမှန်အားဖြင့် cursor ယန္တရားကိုအသုံးပြုသည်။ အကယ်. သိုလှောင်မှုကို မခေါ်ပါကရလဒ်ကိုဖြတ်သန်းသွားသောလုပ်ငန်းစဉ်တွင်ရှာဖွေမှုကိုမခေါ်ပါကအချက်အလက်ဆုံးရှုံးမှုဖြစ်စဉ်တွင်အချက်အလက်ဆုံးရှုံးမှုဖြစ်နိုင်သည်။ ထို့ကြောင့် store_result ကို ခေါ်ဆိုခြင်းသည်စုံစမ်းမှုရလဒ်များပြီးပြည့်စုံပြီးအချက်အလက်များမပျောက်ဆုံးစေရန်အတွက်အဓိကခြေလှမ်းတစ်ခုဖြစ်သည်။

4.3 လိုက်ဖက်ခြင်းနှင့်သယ်ဆောင်နိုင်ခြင်း

MySQL configurations အချို့ (ဥပမာအားဖြင့် client buffering ကို disable လုပ်ခြင်းကဲ့သို့သော) သည်ပုံမှန် query quere ရလဒ်များကိုအကျိုးသက်ရောက်နိုင်သည်။ ဤကိစ္စတွင် Store_result ကို ခေါ်ဆိုခြင်း CONESTIONSATE နှင့် Portable သည် server configurations များကြောင့်ရှေ့နောက်မညီသောစုံစမ်းမှုအပြုအမူများကိုရှောင်ရှားရန်,

5 ။ Store_Result ကို ဘယ်အချိန်မှာခေါ်ဖို့မလိုအပ်ပါဘူး။

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>-&gt;</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>-&gt;</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>-&gt;</span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();
</span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</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>-&gt;</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 သည်လက်ဖြင့် စတိုးဆိုင်များကို လက်ဖြင့်ခေါ်ဆိုခြင်းမရှိဘဲရလဒ်ကိုအလိုအလျောက်လုပ်ဆောင်သည်။

6 ။ Store_Result ၏စွမ်းဆောင်ရည်သက်ရောက်မှု

Store_Result ကို ခေါ်ဆိုခြင်းကရလဒ်အားလုံးကို 0 န်ဆောင်မှုခံယူသူအားတစ်ချိန်တည်းတွင်တင်လိမ့်မည်။ သင်၏မေးမြန်းခြင်းသည်အချက်အလက်အမြောက်အများကိုပြန်လည်ရောက်ရှိပါက Store_Result ကို အသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်ပျက်စီးခြင်းသို့မဟုတ်မှတ်ဥာဏ်လျှံကိုပင်ဖြစ်ပေါ်စေနိုင်သည်။ ဤကိစ္စတွင်ရလဒ်များကို cache အစား (ဥပမာ MySQLI_ST_RESURT_RESFult နှင့် Fetch ) ကိုရယူရန်အတွက် streaming ကိုအသုံးပြုရန်အကြံပြုသည်။

7 ။ အကျဉ်းချုပ်

MySQLI_STMT :: Store_Result သည် MySQLI extension တွင်အဓိကအသုံးပြုသော MySQLI extension တွင်အဓိကအားဖြင့် cache query မှ client သို့ Client သို့အသုံးပြုသည်။ ရလဒ်များကိုရှာဖွေခြင်းသို့မဟုတ်ကော်လံများအပါအ 0 င်ရလဒ်များကိုရှာဖွေခြင်းရလဒ်များကိုရှာဖွေခြင်းကိုကြည့်ရှုနိုင်သည့်အခြေအနေများတွင်အရေးပါသောအခန်းကဏ် plays မှပါ 0 င်သည်။ မည်သို့ပင်ဆိုစေကာမူ developer များ developer များကမူ၎င်းကိုအမှန်တကယ်အခြေအနေပေါ် မူတည်. မည်သို့ခေါ်ဆိုရမည် ကို ဆုံးဖြတ်သင့်သည်။ ဤလုပ်ဆောင်မှုကိုမည်သည့်အချိန်တွင်အသုံးပြုမည်ကိုနားလည်ခြင်းနှင့်၎င်း၏စွမ်းဆောင်ရည်သက်ရောက်မှုကိုထိရောက်စွာရေးရန်ကူညီရန်အထောက်အကူပြုသည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli_stmt