PHP တွင် PDostatement :: Fetchobjection သည် ရလဒ်ကိုဒေတာဘေ့စ်မေးမြန်းချက်များကိုအရာဝတ်ထုထဲသို့ပြောင်းလဲရန်အတွက်ဘုံနည်းလမ်းဖြစ်သည်။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုဖြစ်စဉ်တွင်ကျွန်ုပ်တို့သည်နည်းလမ်းကိုစနစ်တကျအလုပ်မလုပ်စေရန်များသောအားဖြင့်အမှားအယွင်းများကိုကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည်ဤနည်းများကိုဖြေရှင်းနည်းကိုမည်သို့ဖြေရှင်းရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည် ။
ဘုံပြ problem နာတစ်ခုမှာ Fetchobject ကို သုံးသောအခါပြန်လာတန်ဖိုးမှာ null ဖြစ်သည်။ ၎င်းသည်ပုံမှန်အားဖြင့်ဒေတာဘေ့စ်စုံစမ်းမှုသည်မည်သည့်ရလဒ်မျှမရရှိနိုင်ပါက,
query ကိုပြန်လည်ရယူခြင်းသည်ရလဒ်ကိုပြန်လည်ရယူခြင်းရှိမရှိအတည်ပြုပါ ။ FetchOccoboject ကို မသုံးမီ SQL query ကိုအောင်မြင်စွာလုပ်ဆောင်နိုင်အောင်အောင်မြင်စွာလုပ်ဆောင်နိုင်အောင်အောင်မြင်ပြီးအနည်းဆုံးဒေတာများကိုပြန်လည်ရောက်ရှိစေကြောင်းသေချာအောင်လုပ်ပါ။ Rowcount () သို့မဟုတ် fetchall () () (သို့မဟုတ်) မှတစ်ဆင့်ရလဒ်ရှိမရှိစစ်ဆေးနိုင်သည်။
$stmt = $pdo->prepare("SELECT * FROM users");
$stmt->execute();
// ဒေတာရှိမရှိစစ်ဆေးပါ
if ($stmt->rowCount() > 0) {
$user = $stmt->fetchObject();
} else {
echo "ဒေတာမရှိပါ";
}
Class Name ကိုမှန်ကန်စွာအသုံးပြုသည်ကိုအတည်ပြုပါ ။ အကယ်. ရလဒ်ကိုသီးခြားအရာဝတ်ထုအတန်းတစ်ခုသို့သင်မြေပုံဆွဲလိုပါက Class Name ကို FetchObject Method တွင်မှန်ကန်စွာဖြတ်သန်းသွားကြောင်းသေချာစေပါ။ အဘယ်သူမျှမအတန်းအစားအမည်မကုန်လျှင်, ပြန်လာစံအရာဝတ်ထုဖြစ်လိမ့်မည်။
class User {
public $id;
public $name;
}
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute([':id' => 1]);
$user = $stmt->fetchObject('User');
if ($user !== null) {
echo $user->name;
} else {
echo "အသုံးပြုသူကိုရှာမတွေ့ပါ";
}
အချို့ဖြစ်ရပ်များတွင်ဒေတာဘေ့စ်ကော်လံအမည်နှင့် PHP အတန်းအစား၏ attribute name သည်မဖြစ်ပါ ။
Default Fetch Mode ကိုသတ်မှတ်ရန် PDO :: Attr_Default_Fets_mode ကို သုံးပါ ။ ဥပမာအားဖြင့်၎င်းကို PDO :: Fetter_assoc သို့သတ်မှတ်နိုင်သည်။ ထို့ကြောင့်ရလဒ်သည်အမှုမတိုက်ဆိုင်မှုပြ problem နာကိုရှောင်ရှားရန်,
$stmt = $pdo->prepare("SELECT * FROM users");
$stmt->execute();
$user = $stmt->fetchObject();
Database Column Name သည်အရာဝတ်ထု attribute name နှင့်ကိုက်ညီမှုရှိကြောင်းသေချာစေပါ ။
အကယ် . မြေပုံဆွဲသူအတန်းအစားတွင်ဆောက်လုပ်ရေးလုပ်ငန်းများရှိပြီး parameters တွေကိုလိုအပ်လျှင်,
FetchObject ကို အသုံးပြုသောအခါ comptobobject parameters များကိုဖြတ်သန်းပါ ။ အကယ်. အတန်းတွင် ClassObjactor ၏ဒုတိယ parameter မှတစ်ဆင့်လိုအပ်သော parameter များကိုသင်ဖြတ်သန်းသွားနိုင်သည်။
class User {
public $id;
public $name;
public function __construct($id) {
$this->id = $id;
}
}
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute([':id' => 1]);
$user = $stmt->fetchObject('User', [1]);
PDO :: FETC_AST_AST_AsSOC နှင့် PDOSTATATECTOMES :: Fetterobjection သည်ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များကိုရရှိရန်အသုံးများသောနည်းလမ်းများဖြစ်သော်လည်း၎င်းတို့သည်သိသာထင်ရှားသည့်ကွဲပြားခြားနားမှုများရှိသည်။
PDO :: Fetter_assoc : ကော်လံအမည်တစ်ခုစီနှင့်တွဲဖက်ခင်းကျင်းမှုတစ်ခုစီကိုခင်းကျင်းခြင်း၏သော့ချက်နှင့်ကျောက်တုံး၏တန်ဖိုးကိုထည့်သွင်းထားသည်။ အထူးသဖြင့်ဒေတာဘေ့စ်၏ကွင်းဆင်းတန်ဖိုးများကိုသင်သာရရန်လိုအပ်သည့်နေရာများအတွက်ဖြစ်နိုင်ချေရှိသောအခြေအနေများအတွက်သင့်တော်သည်။
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute([':id' => 1]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo $result['name'];
PDostatement :: Fetchobject : Object One ဥပမာတစ်ခုပြန်ပို့ခြင်း, အိမ်ခြံမြေအမည်မှာဒေတာဘေ့စ်လယ်ကွင်းအမည် (ပုံမှန်) ဖြစ်သည်။ အရာဝတ်ထုများကိုအများအားဖြင့်အရာဝတ်ထု ဦး တည်ပရိုဂရမ်များတွင်အသုံးပြုသောအရာဝတ်ထုများကိုတိုက်ရိုက်မြေပုံဆွဲလိုသည့်အခြေအနေများအတွက်သင့်တော်သည်။
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute([':id' => 1]);
$user = $stmt->fetchObject();
echo $user->name;
PDO :: fetter_assoc ကို သုံးပါ ။ အကယ်. သင်သည်ဒေတာဘေ့စ်လယ်ကွင်း၏တန်ဖိုးများကိုသာဂရုပြုပါက, Acireative Array အိုင်တီပြန်အမ်းငွေသည်ကွင်းဆင်းလေ့လာခြင်းကိုတိုက်ရိုက်ရရှိနိုင်သည်။
FetchObject ကို သုံးပါ - အကယ်. သင်သည် Object-oriented programming လိုအပ်ပါကဒေတာဘေ့စ်ရှိဒေတာတစ်ခုစီကိုအရာဝတ်ထုတစ်ခုအဖြစ်ကိုယ်စားပြုလိုပါက Fetchobject သည်အကောင်းဆုံးဖြစ်သည်။ ၎င်းသည် oop ၏ဒီဇိုင်းအတွေးအခေါ်များနှင့်အညီပိုမိုကောင်းမွန်ပြီးရှုပ်ထွေးသောဒေတာလုပ်ငန်းများလိုအပ်သည့်အခြေအနေများအတွက်အထူးသဖြင့်သင့်တော်သည်။
PDostatement :: Fetostobject ကို အသုံးပြုသောအခါ, ပုံမှန်အမှားများသည်ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များ, လူတန်းစားမြေပုံရေးဆွဲခြင်း,
တစ်ချိန်တည်းမှာပင် PDO :: Fetter_assoc နှင့် Fetchobject အကြားခြားနားချက်ကိုနားလည်ခြင်းသည်မှန်ကန်သောအချက်အလက်ရယူရန်နည်းလမ်းကိုရွေးချယ်ရန်အလွန်အရေးကြီးသည်။ ရိုးရှင်းသောမေးမြန်းချက်အများစုအတွက် PDO :: FETT_AST_AST_ASTION သည် ပိုမို ထိရောက်သောစွမ်းဆောင်ရည်ကိုပေးသည်။
PDostatement :: Fetchobject -related ပြ issues နာများကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်ပြ issues နာများကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်ပြ troubl နာများကိုရှာဖွေရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးသည်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။