PPP ကို MySQL databases များကိုလုပ်ကိုင်ရန် PHP ကိုအသုံးပြုသောအခါ developer များစွာသည်ဒေတာဘေ့စ်စစ်ဆင်ရေးပြုလုပ်ရန် MySQLI extensions ကို အသုံးပြု. လေ့ကျင့်ခံရသည်။ သို့သော်လူများစွာသည်အသေးစိတ်အချက်အလက်များကိုလျစ်လျူရှုကြသည်။ သင်မေးကောင်းမေးလိမ့်မည်, $ ရလဒ် - အခမဲ့ () (သို့မဟုတ် mySqli_free_result () ) တကယ်အရေးကြီးသလော ဘာလို့ချန်လှပ်လို့မရဘူးလဲ။ ဤဆောင်းပါးကိုအသေးစိတ်ဆွေးနွေးပါမည်။
MySQLI_QUERY () ကို သုံးသောအခါစုံစမ်းမှုကြေညာချက်ကိုလုပ်ဆောင်ရန် - ဥပမာ -
$mysqli = new mysqli("localhost", "username", "password", "database");
$result = $mysqli->query("SELECT * FROM users");
ဤနေရာတွင် ဒေါ်လာရလဒ် မှာ MySQLI_RESult Object တစ်ခုဖြစ်သည်။ အထူးသဖြင့်စုံစမ်းမှုရလဒ်များကြီးမားသည့်အခါ မှတ်ဥာဏ် သည်ကြီးမားသည့်အခါမှတ်ဥာဏ်များစွာမှာသိသိသာသာတိုးပွားလာသည်။
လူအများစုက PHP သည်မှတ်ဉာဏ်သည်မှတ်ဉာဏ်ကိုအလိုအလျောက်စီမံခန့်ခွဲနိုင်ပြီးဇာတ်ညွှန်းကြီးစွန်းသောအခါ variable များကိုအလိုအလျောက်သန့်ရှင်းရေးလုပ်လိမ့်မည်ဟုထင်မြင်ကြသည်။ ဒါပေမယ့်တကယ်တော့:
? ဇာတ်ညွှန်းအဆုံးသတ်သောအခါမှတ်ဉာဏ်ကိုအလိုအလျောက်သန့်ရှင်းရေးပြုလုပ်လိမ့်မည်။
? သို့သော် script တွင်ပြေးနေစဉ်အတွင်းသင့်တွင်မေးမြန်းချက်များစွာသို့မဟုတ်ကြီးမားသောမေးမြန်းချက်များစွာရှိပါက၎င်းတို့အားတက်ကြွစွာမဖြည့်ဆည်းပေးနိုင်ပါကမှတ်ဉာဏ်ဖိအားသည် သာ. ကြီးမြတ်လာလိမ့်မည်။
ဥပမာအားဖြင့်:
for ($i = 0; $i < 1000; $i++) {
$result = $mysqli->query("SELECT * FROM big_table");
// အဘယ်သူမျှမရလဒ်အစုံဖြန့်ချိနေသည်
}
အထက်ပါကုဒ်တွင်ကွင်းဆက်တစ်ခုစီသည်ရလဒ်ကိုဖန်တီးလိမ့်မည်။ သို့သော်၎င်းကိုဖြန့်ချိမည်မဟုတ်ပါ။ ၎င်းသည်မှတ်ဥာဏ်မြင့်တက်မှုကိုထိန်းသိမ်းထားနိုင်ပြီးနောက်ဆုံးတွင် မှတ်ဥာဏ်လျှံ သို့မဟုတ် စွမ်းဆောင်ရည်သိသိသာသာကျဆင်းသွား နိုင်သည်။
သင် $ ရလဒ်ကိုထည့်ပါက> အခမဲ့ () :
for ($i = 0; $i < 1000; $i++) {
$result = $mysqli->query("SELECT * FROM big_table");
$result->free();
}
ဤနည်းအားဖြင့် Loop တစ်ခုစီ၏အဆုံးတွင်ရလဒ်အနေဖြင့်ရရှိသောမှတ်ဉာဏ်ကိုအချိန်မီပြန်လွှတ်ပေးလိမ့်မည်, မှတ်ဉာဏ်အသုံးပြုမှုကိုအလွန်လျှော့ချလိမ့်မည်။
နည်းလမ်းနှစ်မျိုးရှိသည်။
1 ?? Object-Oriented စတိုင်:
$result = $mysqli->query("SELECT * FROM users");
if ($result) {
// အပြောင်းအလဲများရလဒ်များ...
$result->free();
}
2 ?? လုပ်ငန်းစဉ်ပုံစံ:
$result = mysqli_query($mysqli, "SELECT * FROM users");
if ($result) {
// အပြောင်းအလဲများရလဒ်များ...
mysqli_free_result($result);
}
မှတ်စု : အကယ် . မေးမြန်းမှုမအောင်မြင် ပါ က,
ကွဲပြားခြားနားသော scripts များနှင့်စုံစမ်းမှုတစ်ခုတည်းနှင့်ခြားနားချက်ကိုသင်မခံစားရပေ။ သို့သော်ဤအခြေအနေများတွင်ရလဒ်ကိုမလွှတ်ရသည့်အတွက်ကြီးမားသောအကျိုးဆက်များရှိလိမ့်မည်။
Big Data Query: ထောင်ပေါင်းများစွာသောကောက်သောအတန်းများကိုမေးမြန်းသောအခါရလဒ်မှာရလဒ်မှာမှတ်ဥာဏ်များစွာရှိသည်။
ရှည်လျားသောပြေး scripts များ - ထိုကဲ့သို့သောအချိန်အချိန်ကုန်လွန်သောအလုပ်များ,
မြင့်မားသောတစ်ပြိုင်နက်တည်း web service - တောင်းဆိုမှုတစ်ခုစီသည်မှတ်ဥာဏ်ကိုစားသုံးပြီးဆာဗာကိုကြာမြင့်စွာဆွဲချသည်။
ဤဖြစ်ရပ်များတွင်ရလဒ်အစုကိုမထုတ်ပြန်နိုင်တော့ပါ။ အနည်းဆုံးနှေးကွေးစွာနှေးကွေးနိုင်ပြီးအဆိုးဆုံးတွင်ဆာဗာပျက်သွားနိုင်သည်။
ဝါကျတစ်ကြောင်းကိုသတိရပါ။ အသုံးပြုသောအရင်းအမြစ်များကိုကိုယ်တိုင်ထုတ်ပြန်ရမည်။
PHP သည်မှတ်ဥာဏ်ကိုအလိုအလျောက်ပြန်လည်အသုံးပြုလျှင်ပင်အရင်းအမြစ်များကိုစီမံရန်၎င်းကိုမထားပါနှင့်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကောင်းမွန်သောအလေ့အထများကိုတည်ဆောက်ခြင်း - $ ရလဒ် -> အခမဲ့ () သည် "ညာ" ကုဒ်ကိုသာမက "ကောင်းသော" ကုဒ်ကိုရေးသားခြင်းသည်အချိန်မီအချိန်မီဖြစ်သည်။