PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်မှအရာဝတ်ထုတစ်ခု၏ပုံစံကိုရယူရန် Fetch_Object လုပ်ဆောင်ချက်ကိုအသုံးပြုရန်အလွန်အသုံးများသည်။ developer များသည် developer များအားအချက်အလက်များကိုအဓိကထားသည့်နည်းလမ်းဖြင့်ကိုင်တွယ်ရန်ခွင့်ပြုထားပြီးကုဒ်ဖွဲ့စည်းပုံသည်ရှင်းလင်းသည်။ သို့သော်မြင့်မားသောတစ်ပြိုင်နက်တည်းသို့မဟုတ်ရှည်လျားသောပြေး scripts များတွင် Fetch_Object မှပြန်လာသောအရာဝတ်ထုအရင်းအမြစ်များကိုစနစ်တကျစီမံခြင်းမပြုပါက,
ဤဆောင်းပါးသည် fchet_object ၏အလုပ်လုပ်နိယာမဖြင့်စတင်ပါက,
FETC_OBJECT သည် PHP ရှိ MySQLI_RESELT လူတန်းစားများ၏နည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည် -
$mysqli = new mysqli("m66.net", "user", "password", "database");
$result = $mysqli->query("SELECT * FROM users");
while ($obj = $result->fetch_object()) {
echo $obj->username . "<br>";
}
ဤတွင် အချိန်ကုန်ခံပြီးတိုင်း အချိန်တိုင်းဟုခေါ်သည့်အခါတိုင်းအရာဝတ်ထုဥပမာအသစ်ကိုပြန်ပို့သည်။ ၎င်းသည်လက်ရှိအတန်း၏အချက်အလက်များကိုကိုင်ထားသည်။
ရလဒ်ကိုအချိန်မီဖြန့်ချိသည့်အရင်းအမြစ်များကိုသတ်မှတ်ပါ အကယ်. စုံစမ်းမှုရလဒ်များကိုအချိန်ကြာမြင့်စွာမထုတ်ပြန်ပါက MySQLI_RESELT သည် မှတ်ဥာဏ်များစွာကိုသိမ်းပိုက်လိမ့်မည်။ PHP script ကိုအဆုံး၏အဆုံးတွင်အလိုအလျောက်သန့်ရှင်းရေးလုပ်ခြင်းဖြစ်သော်လည်း၎င်းသည်ရှည်လျားသော scripts သို့မဟုတ် daemons များတွင်လက်ဖြင့်ထုတ်လွှတ်ရမည်။
အရာဝတ်ထုအမြောက်အများကိုကွင်းဆက်တစ်ခုတွင်ဖန်တီးပြီးအချိန်မီမဖျက်ဆီးခြင်း
Fetch_Object သည် အရာဝတ်ထုအသစ်များကိုစဉ်ဆက်မပြတ်ဖန်တီးသည်။ အကယ်. ဤအရာဝတ်ထုများကိုပြင်ပတွင် ကိုးကား. သိုလှောင်ထားပြီးမသန့်ရှင်းစွာသိုလှောင်ထားခြင်းမရှိပါကမှတ်ဉာဏ်ဆက်လက်ကြီးထွားလာလိမ့်မည်။
ရှုပ်ထွေးသောအရာဝတ်ထုကိုးကားချက်များသည်မှတ်ဥာဏ်ကိုပြန်လည်အသုံးပြုစေနိုင်သည် Fetch မှရရှိသောအရာဝတ်ထုများသည်အခြားကြီးမားသောအရင်းအမြစ်များကိုရည်ညွှန်းသည့် attribute များပါ 0 င်ပါက,
စုံစမ်းမှုပြီးဆုံးသွား ပြီးနောက် ,
$result = $mysqli->query("SELECT * FROM users");
while ($obj = $result->fetch_object()) {
// အချက်အလက်များကိုထုတ်ယူခြင်း
}
$result->free();
အကယ်. သင်သည် FETLE_OBJOCT ၏ရလဒ်ကိုခင်းကျင်းမှုတစ်ခုသို့သိမ်းဆည်းပါကအပြောင်းအလဲများပြီးပါကခင်းကျင်းမှုကိုအတိအလင်းရှင်းလင်းပါ။
$objects = [];
while ($obj = $result->fetch_object()) {
$objects[] = $obj;
}
// အားလုံးအရာဝတ်ထု process
unset($objects);
$result->free();
၎င်းသည် PHP Recycle Memory ကိုပိုမိုမြန်ဆန်စွာကူညီနိုင်သည်။
အရာဝတ်ထုများကိုအချိန်ကြာမြင့်စွာသိမ်းရန်မလိုအပ်ပါကအရာဝတ်ထုစုဆောင်းခြင်းကိုရှောင်ရှားရန်ကွင်းဆက်တွင်ထုတ်ယူပြီးနောက်ရည်ညွှန်းကိုးကားပါ။
မှတ်ဥာဏ်ဖိအားမြင့်မားပါက fetch_assoc () ကို သုံး. အရာဝတ်ထုတစ်ခုအစား array ကို သုံး. မှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချပါ။
while ($row = $result->fetch_assoc()) {
// Array ကိုအသုံးပြုပြီးအချက်အလက်များကိုကြည့်ရှုပါ
}
ကုဒ်ပုံစံသည်ကွဲပြားသော်လည်းမှတ်ဉာဏ်ဖော်ရွေသည်။
<?php
$mysqli = new mysqli("m66.net", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ:" . $mysqli->connect_error);
}
$result = $mysqli->query("SELECT * FROM users");
if ($result) {
while ($obj = $result->fetch_object()) {
echo "အသုံးပြုသူ: " . $obj->username . "<br>";
// ဒါကြောင့်အပြောင်းအလဲနဲ့ပြီးနောက်သိမ်းဆည်းမထားဘူးဆိုရင်,တိုက်ရိုက် variable တွေကိုဖြန့်ချိ
unset($obj);
}
// ရလဒ်ကိုလွှတ်ပေးရန်
$result->free();
} else {
echo "စုံစမ်းမှုမအောင်မြင်ပါ:" . $mysqli->error;
}
$mysqli->close();
?>
FETT_OBJATT သည်ဒေတာစီမံခန့်ခွဲမှုအတွက်အဆင်ပြေသော်လည်းအရာဝတ်ထုအမြောက်အများကိုဖန်တီးမှုသည်မှတ်ဥာဏ်ဖိအားကိုဆောင်ကြဉ်းပေးလိမ့်မည်။
မှတ်ဥာဏ်ယိုစိမ့်မှုကိုကာကွယ်ရန်အတွက်ရလဒ်အနေဖြင့်ရလဒ်များထုတ်လွှတ်ခြင်းနှင့်အရာဝတ်ထုများကိုဖျက်ဆီးရန်အလေ့အကျင့်ကိုသင်တည်ဆောက်ရမည်။
Fetch_assoc နှင့်သင့်လျော်သောမှတ်ဉာဏ်စီမံခန့်ခွဲမှုဆိုင်ရာမူဝါဒများကိုပေါင်းစပ်ပြီး PHP scripts ၏မှတ်ဉာဏ်အသုံးပြုမှုကိုထိထိရောက်ရောက်ထိန်းချုပ်နိုင်သည်။
ရှည်လျားသောပြေး script များအနေဖြင့်မှတ်ဥာဏ်စောင့်ကြည့်လေ့လာခြင်းနှင့်စီမံခန့်ခွဲမှုများကိုအထူးဂရုပြုပါ။
အထက်ပါကျွမ်းကျင်မှုများသည်အချက်အလက်အမြောက်အများကိုပြုပြင်သောအခါသင်၏ PHP အစီအစဉ်ကိုပိုမိုတည်ငြိမ်ပြီးထိရောက်စေနိုင်သည်။