PHP ရှိဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI Extension ကိုအသုံးပြုသောအခါ MySQLI_RESELT :: FETL_CONNONDOND Method ကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤနည်းလမ်းသည်စုံစမ်းမှုရလဒ်မှသတ်မှတ်ထားသောကော်လံတစ်ခု၏တစ်ခုတည်းသောအချက်အလက်များကိုထုတ်ယူနိုင်သည်။ သို့သော် developer များစွာသည် fetch_column method ကိုအသုံးပြုသောအခါပြန်လည်နေရာချထားသည့်ပြ problems နာများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဒါကြောင့် Fetch_Column ဘယ်လိုပြန်ပို့သလဲ။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်, အမျိုးအစားပြောင်းလဲခြင်းအမှားအယွင်းများကိုရှောင်ရှားရန်၎င်းကိုမည်သို့မှန်ကန်စွာပြောင်းလဲရန်မည်သို့လုပ်ဆောင်ရမည်နည်း။
FETT_CONDIC သည် MySQLI_RESULT လူတန်းစားတွင်ရလဒ်ကိုရလဒ်အနေဖြင့်သတ်မှတ်ထားသောကော်လံတစ်ခုမှဒေတာများကိုထုတ်ယူသည်။ ၎င်း၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<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-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_column</span></span><span>(</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-variable">$row</span></span><span>;
}
</span></span>ဤဥပမာတွင် Fetter_Colum (0) သည် စုံစမ်းမှုရလဒ်တစ်ခု စီ မှပထမကော်လံ၏တန်ဖိုးကိုထုတ်ယူခြင်းကိုဆိုလိုသည်။ ပြန်လာတန်ဖိုးမှာသတ်မှတ်ထားသောကော်လံ၏ content ဖြစ်သည်။ အကယ်. စုံစမ်းမှုအတန်းတစ်ခုတွင်ကော်လံမျိုးစုံရှိပါက Fetch_column သည် သတ်မှတ်ထားသောကော်လံ၏အချက်အလက်များကိုသာပြန်လည်ပေးလိမ့်မည်။
Letch_column ၏ပြန်လာတန်ဖိုးကိုပုံသေအမျိုးအစားမဟုတ်ပါ။ ဒေတာဘေ့စ်စားပွဲရှိသက်ဆိုင်ရာကော်လံအမျိုးအစားများနှင့် PHP သည်ဒေတာဘေ့စ်နှင့်မည်သို့ဆက်ဆံသည်ကို အခြေခံ. ကွဲပြားခြားနားသောတန်ဖိုးများကိုပြန်လည်ရရှိစေသည်။ ဘုံပြန်လာအမျိုးအစားများပါဝင်သည်:
String : အမျိုးအစားကျမ်းစာစောင်များအတွက် Varchar , Char, string ကိုပြန်ပို့ပါ။
INT : Int စ သည့် ကိန်းဂဏန်းများအရသိရသည်။
Float : ဒ decimal မ, float, နှစ်ဆ စ သဖြင့် decimals အမျိုးအစားများကိုမျောနေရန်ရေပေါ်ဒ decimal မပြန်ဖြစ်သွားသည်။
NULL : အကယ်. စုံစမ်းမှုကော်လံသည် တရားမဝင်သော တန်ဖိုးပါ 0 င်ပါကပြန်လည်နေရာချထားသည့်တန်ဖိုးသည် NULL ဖြစ်သည်။
Fetch_Column သည် ဤပြန်လည်ထူထောင်ရေးတန်ဖိုးများကိုမစွန့်လွှတ်နိုင်ကြောင်းသတိပြုသင့်သည်မှာဒေတာဘေ့စ်စားပွဲပေါ်ရှိဒေတာအမျိုးအစားပေါ် မူတည်. query ရလဒ်များကိုတိုက်ရိုက်ပြန်ပို့လိမ့်မည်။ ထို့ကြောင့်ပြန်လာသောဒေတာအမျိုးအစားများကွဲပြားခြားနားသောကိစ္စများတွင်ကွဲပြားနိုင်သည်။
Fetch_column မှပြန်လာသောတန်ဖိုးအမျိုးအစားသည်မသတ်မှတ်ထားသည့်အတွက် developer များကပြန်လည်ပြုပြင်ခြင်းတန်ဖိုးများကိုထုတ်လုပ်သည့်အခါ developer များကမတိုက်ဆိုင်မှုများကိုကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်, ကိန်းဂဏန်းတစ်ခုအတွက် string တစ်ခုလည်ပတ်ရန်သို့မဟုတ် null value လိုအပ်သော function တစ်ခုအတွက် null value ကိုအောင်မြင်ရန်ကြိုးစားခြင်းသည် runtime အမှားတစ်ခုသို့မဟုတ်ယုတ္တိရှိသောအမှားတစ်ခုဖြစ်လိမ့်မည်။
ကြိုးနှင့်နံပါတ်များကိုနှိုင်းယှဉ်ခြင်း - အကယ်. Fetter_column သည် string type နံပါတ်ကိုပြန်လည်ရောက်ရှိပြီး၎င်းကိုတကယ့်ကိန်းနှင့်နှိုင်းယှဉ်လျှင်သင်သည်တိကျသောအခြေအနေများနှင့်သင်ကြုံတွေ့ရနိုင်သည်။
Null Value processing : အကယ် . ပြန်လာတန်ဖိုးမှာသင့် လျော် သောစစ်ဆေးမှုကိုမပြုလုပ်ပါကသင့်လျော်သောစစ်ဆေးမှုကိုမပြုလုပ်ပါက,
Type Cast - တခါတရံမှာကျနော်တို့ကပြန်လာတန်ဖိုးကိုအချို့သောဒေတာအမျိုးအစားတစ်ခုသို့အတိအလင်းပြောင်းလဲရန်လိုအပ်သည်။ သို့မဟုတ်ပါကပရိုဂရမ်၏ယုတ္တိဗေဒကိုအကျိုးသက်ရောက်လိမ့်မည်။ ဥပမာအားဖြင့်, string ၏နံပါတ်ကိုကိန်းဂဏန်းတစ်ခုသို့ပြောင်းလဲခြင်းသို့မဟုတ်မျောနေသောဒ decimal မကိုကိန်းတစ်ခုသို့ပြောင်းလဲသည့်အခါ, တိကျမှုပျောက်ဆုံးသွားနိုင်သည်။
အထက်ဖော်ပြပါပုံစံပြောင်းလဲခြင်းအမှားကိုရှောင်ရှားနိုင်ရန်အတွက် Code ၏ကြံ့ခိုင်မှုကိုသေချာစေရန်ပြန်လာသောတန်ဖိုးကိုကိုင်တွယ်ရန်အောက်ပါနည်းလမ်းများကိုကျွန်ုပ်တို့ယူနိုင်သည်။
Letter_Column ကို ပြန်ရန်အတွက်အသုံးပြုသောအခါသင်ကော်လံအမျိုးအစားကိုရှင်းရှင်းလင်းလင်းသိလျှင်သင်တိုက်ရိုက်ပစ်ချနိုင်သည်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$columnValue</span></span><span> = (</span><span><span class="hljs-keyword">int</span></span><span>) </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_column</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// integer မှသွန်း</span></span><span>
</span></span>ဤနည်းလမ်းသည်ကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်အညီမှန်ကန်သောအမျိုးအစားကိုရရှိရန်နှင့်အခြားအမျိုးအစားများကြောင့်အမှားအယွင်းများကိုရှောင်ရှားရန်သေချာစေသည်။
Mishandling Null တန်ဖိုးများကိုရှောင်ရှားရန် NULL တန်ဖိုးစစ်ဆေးမှုများကိုပြန်လည်နေရာချထားခြင်းမပြုမီလုပ်ဆောင်ရမည်ဖြစ်သည်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$columnValue</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_column</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$columnValue</span></span><span> !== </span><span><span class="hljs-literal">NULL</span></span><span>) {
</span><span><span class="hljs-comment">// Non-Null တန်ဖိုးများကိုကိုင်တွယ်</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// ကိုင်တွယ်ဖြေရှင်းသည် NULL အဘိုး</span></span><span>
}
</span></span>ကိန်းဂဏန်းများအတွက်လိုအပ်သောကွက်လပ်များအတွက်, Return Transles အမျိုးအစားများကိုပြန်ပို့ပါ ။
<span><span><span class="hljs-variable">$columnValue</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_column</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_numeric</span></span><span>(</span><span><span class="hljs-variable">$columnValue</span></span><span>)) {
</span><span><span class="hljs-variable">$columnValue</span></span><span> = (</span><span><span class="hljs-keyword">float</span></span><span>) </span><span><span class="hljs-variable">$columnValue</span></span><span>; </span><span><span class="hljs-comment">// floating ဒ decimal မသို့ပြောင်းရန်</span></span><span>
}
</span></span>သွန်း သို့မဟုတ် ပြောင်းခြင်း ကဲ့သို့သော SQL လုပ်ဆောင်ချက်များသည်ဒေတာဘေ့စ်မှရရှိသောအချက်အလက်များကိုလိုချင်သောအမျိုးအစားသို့ပြောင်းလဲခြင်းကိုသေချာစေရန်အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်:
<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 CAST(price AS DECIMAL(10, 2)) FROM products"</span></span><span>);
</span></span>ဤနည်းအားဖြင့်ပြန်လာသောဒေတာအမျိုးအစားကိုဒေတာဘေ့စ်အဆင့်တွင်ထိန်းချုပ်နိုင်သည်။
MySQLi_Result :: Fetter_column မှပြန်လာသောဒေတာအမျိုးအစားသည်မသတ်မှတ်ထားပါ။ ပုံမှန်အားဖြင့်ဒေတာဘေ့စ်စားပွဲရှိဒေတာအမျိုးအစားများကို အခြေခံ. ဆုံးဖြတ်လေ့ရှိသည်။ အမျိုးအစားပြောင်းလဲခြင်းအမှားအယွင်းများကိုအသုံးပြုခြင်းကိုရှောင်ရှားနိုင်ရန်အတွက် developer များကသင့်လျော်သောအမျိုးအစားစစ်ဆေးမှုများနှင့်ပြန်လည်နေရာချထားရေးတန်ဖိုးအပေါ်ပြောင်းလဲရန်လိုအပ်သည်။ ပုံသဏ် there ာရေးကူးပြောင်းခြင်း, null စစ်ဆေးမှု, is_numeric function နှင့်အခြားနည်းလမ်းများ အသုံးပြု. အမှားများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးအစီအစဉ်၏တည်ငြိမ်မှုကိုသေချာစေနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli_result