PHP တွင် MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုသောအခါ, mysqli_result :: fetch_assoc နှင့် mysqli_fetch_row သည်စုံစမ်းမှုရလဒ်များကိုရယူရန်အသုံးအများဆုံးနည်းလမ်းနှစ်ခုဖြစ်သည်။ သူတို့အားလုံးသည် query ရလဒ်ကိုပြန်လည်ရောက်ရှိနိုင်သော်လည်း၎င်းတို့သည်စွမ်းဆောင်ရည်, ပြန်လည်ထူထောင်ရေးပုံစံနှင့်သက်ဆိုင်သည့်အခြေအနေများနှင့်သက်ဆိုင်သည်။ ဤဆောင်းပါးတွင်နှစ် ဦး အကြားစွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုလေ့လာပါမည်။
mysqli_result :: fetch_assoc :
fetch_assoc method သည် array ၏သော့သည်ကော်လံအမည်နှင့်တန်ဖိုးသည်သက်ဆိုင်ရာကော်လံ၏တန်ဖိုးသည်တွဲဖက်မှုဆိုင်ရာကဏ် acray တစ်ခုဖြစ်လာသည်။ ဤချဉ်းကပ်နည်းသည်များသောအားဖြင့်နားလည်ရန်ပိုမိုလွယ်ကူသည်။
ဥပမာ -
<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name FROM users"</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</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">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">" - Name: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
</span></span> mysqli_fetch_row :
Fetch_row Method သည် denteled alule indeledexes များကိုပြန်လည်ပတ်ထားပြီး, ဆိုလိုသည်မှာကော်လံတန်ဖိုးများသည် Queric questexes တွင်၎င်းတို့၏စုံစမ်းမှုရလဒ်များအရကိန်းဂဏန်းများတွင်စီစဉ်ထားသည်။ ဤနည်းလမ်းသည် Fetter_assoc ထက်အနည်းငယ်ပိုမိုထိရောက်စေသည်, ဘာဖြစ်လို့လဲဆိုတော့၎င်းသည်ကော်လံအမည်များဖြင့်အသင်းအဖွဲ့များကိုဖန်တီးရန်မလိုအပ်ပါ။
ဥပမာ -
<span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name FROM users"</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_row</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">$row</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>] . </span><span><span class="hljs-string">" - Name: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
</span></span>စွမ်းဆောင်ရည်အရ MySQLI_FETT_ROW သည် mysqli_result :: fetch_assoc ထက် memory-tetch_assoc ထက်များသောအားဖြင့်မှတ်ဉာဏ်ချွေတာခြင်းများဖြစ်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ FETT_ROW က ရိုးရှင်းတဲ့ ဂဏန်းအညွှန်းကိန်းခင်းကိုပြန်ပို့လို့ပဲ။
အထူးသဖြင့် finch_assoc မှ ပြန်လာသော Array သည်ကော်လံအမည်များကိုပါ 0 င်သည်။ ဆိုလိုသည်မှာ Fetch_row သည်မှတ်ဥာဏ်အသုံးပြုမှုတွင်ကုန်ကျစရိတ်သက်သာသည်။ အထူးသဖြင့်စုံစမ်းမှုရလဒ်များတွင်ကော်လံအမြောက်အမြားပါ 0 င်သည်။
Execute Speed အရ MySQLI_FETT_ROW သည် mysqli_result :: fetch_assoc ထက်အနည်းငယ်ပိုကောင်းသည်။ ဘာကြောင့်လဲဆိုတော့ Fetch_assoc ဟာ Associative Arrays တွေတည်ဆောက်တဲ့အခါမှာကော်လံအမည်များကိုမြေပုံရေးဆွဲဖို့အချိန်ပိုလုပ်လို့ရတယ်။ FETT_ROW သည် အပိုဆောင်းမြေပုံထုတ်ယူခြင်းမရှိဘဲနိုင်ရန်အတွက်ကော်လံတန်ဖိုးများကိုတိုက်ရိုက်ပြန်ပို့သည်။ ထို့ကြောင့်အမြန်နှုန်းအနည်းငယ်သာရှိသည်။
ဟုတ်ပါတယ်, ဒီစွမ်းဆောင်ရည်ကွာခြားချက်ကဒေတာသေးသေးလေးတွေနဲ့ဆက်ဆံတဲ့အခါ ဒီ စွမ်းဆောင်ရည်ကွာခြားမှုဟာသိသာထင်ရှားမှာမဟုတ်ဘူး, ဒါပေမယ့်အချက်အလက်ပမာဏဟာအလွန်ကြီးမားတဲ့အခါ,
နားလည်ရန်လွယ်ကူပြီးထိန်းသိမ်းရန်လွယ်ကူသည် ။ Fetch_assoc မှပြန်လာသောအပေါင်းအသင်းသည်ကော်လံအချက်အလက်များကိုရယူရန်ပိုမိုအလိုလိုသိစေသည်။ ကော်လံအမည်များသည် developer များရှာဖွေရန်နှင့်အသုံးပြုရန်အလွန်လွယ်ကူသည်။ အထူးသဖြင့်ရှုပ်ထွေးသောစုံစမ်းမှုရလဒ်များနှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်အသုံးပြုရန်အလွန်လွယ်ကူသည်
ကော်လံအမည်များလိုအပ်သည့်အခြေအနေများ - query ရလဒ်များတွင်ကော်လံများစွာရှိသည့်အခါ fetch_assoc သည်ပိုမိုသင့်လျော်သည်။ developer များကကိန်းဂဏန်းများထက်ကော်လံအမည်များမှတစ်ဆင့်အချက်အလက်များကိုရယူရန်လိုအပ်သည်။ အထူးသဖြင့်ကော်လံမျိုးစုံပါသောကြီးမားသောဒေတာဇယားများကိုဖတ်သည့်အခါဒေတာများကိုကော်လံအမည်များဖြင့်လျင်မြန်စွာနေရာချထားနိုင်သည်။
မြင့်မားသောစွမ်းဆောင်ရည်လိုအပ်ချက်များ - MySQLI_FETT_ROW သည်၎င်း၏မှတ်ဥာဏ်ခြေရာခံခြင်းနှင့်ပိုမိုမြင့်မားကွပ်ကျွမ်းမှုပိုမိုမြင့်မားခြင်းကြောင့်ဒေတာ volume သည်ကြီးမားသည်။ အထူးသဖြင့်သန်းပေါင်းများစွာသောဒေတာများကိုပြုပြင်ရန်လိုအပ်သည့်အခါ, Fetch_row သည် မှတ်ဉာဏ်အသုံးပြုမှုကိုသိသိသာသာလျှော့ချနိုင်ပြီး query studate speed ကိုတိုးမြှင့်နိုင်သည်။
ကော်လံအညွှန်းကိန်းကိုသတ်မှတ်ထားသည့်အခါ developer သည်စုံစမ်းမှုရလဒ်များ၏ကော်လံအမိန့်ကိုဆုံးဖြတ်ရန်နှင့်ကော်လံအမည်များကိုအသုံးပြုရန်မလိုအပ်သည့်အခါ Fetch_row သည်ပိုမိုတိကျသောနှင့်ထိရောက်မှုရှိသည်။
ကြီးမားသောဒေတာမေးမြန်းချက်များကိုရင်ဆိုင်နေရသည့်အခါစွမ်းဆောင်ရည်သည်အရေးပါသောအချက်ဖြစ်လာသည်။ MySQLI_FETCH_ROW သည် မှတ်ဥာဏ်ခြေရာနှင့်ကွပ်မျက်မြန်နှုန်းတွင်အားသာချက်များပိုမိုများပြားလာသောကြောင့်များသောအားဖြင့်ကြီးမားသောဒေတာပမာဏကိုရှာဖွေခြင်းအတွက်အထူးသဖြင့်အချက်အလက်များသာအချက်အလက်များကိုသာရယူရန်လိုအပ်သည့်အခြေအနေတွင်ဖြစ်သည်။
သို့သော်မေးမြန်းမှုနှင့်အချက်အလက်များကိုကော်လံများများစားစားရှိပါကအချက်အလက်များကိုမကြာခဏရယူရန်လိုအပ်ပါက MySQLI_RESELT :: Fetter_Result :: Fetter_assoc သည်စွမ်းဆောင်ရည်အနည်းငယ်နိမ့်ကျသည်။
စွမ်းဆောင်ရည်နှိုင်းယှဉ်ချက် - MySQLI_FETCHT_ROW သည် MySQLI_RESURRESult :: Fetch_assoc ထက်ပိုမိုထိရောက်သောကြောင့်အထူးသဖြင့်ကြီးမားသောအချက်အလက်ပမာဏကိုမေးမြန်းသောအခါ။
သက်ဆိုင်သည့်ဇာတ်လမ်းများ - MySQLI_RESELT :: STEC_AST_AsSOC သည်ပိုမိုကောင်းမွန်သောကော်လံအမည်များကိုလက်လှမ်းမီမှုပိုမိုများပြားလာသည် နှင့် MySQLI_Fetch_row သည် MySQLI_FETCH_ROW အတွက်ပိုမိုသင့်တော်သည်။
အကြံပြုချက် - စွမ်းဆောင်ရည်သည်ပထမ ဦး စားပေးမှုဖြစ်လျှင်ကော်လံအမည်များမှတစ်ဆင့်အချက်အလက်များကိုရယူရန်မလိုအပ်ပါက MySQLI_FETCH_ROW ကို အသုံးပြုရန်အကြံပြုသည်။ Readability နှင့်ဖွံ့ဖြိုးတိုးတက်ရေးအဆင်ပြေမှုများသည် ပို. အရေးကြီးသည်ဆိုပါကအချက်အလက်ပမာဏသည်အတော်လေးသေးငယ်သည် ။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli_result