PHP တွင် PDostatement :: Fetchobject :: Fetchobject သည် query ကိုအရာဝတ်ထုအဖြစ်ပြန်ပို့ပေးနိုင်သည့်အလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်များသောအားဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများတွင်အလွန်အဆင်ပြေသော်လည်းတစ်ခါတစ်ရံတွင်အချက်အလက်အမြောက်အများကိုတစ်ပြိုင်နက်တည်းတင်ဆောင်နိုင်သည့်အချက်အလက်အမြောက်အမြားပြ problem နာကိုကြုံတွေ့ရနိုင်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန်ပျင်းရိသောတင်ခြင်းသည်အလွန်ထိရောက်သောဖြေရှင်းနည်းဖြစ်သည်။
PDostatement :: Leter ကိုတိုးတက်စေရန်နှင့်မှတ်ဥာဏ်အသုံးပြုမှုကိုပိုမိုကောင်းမွန်စေရန် PDostatement :: Fetchockject ကို အသုံးပြုသည့်အခါပျင်းရိသောတင်ခြင်းကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုဤဆောင်းပါးကရှင်းပြပါမည်။
နှောင့်နှေးပါက Loading သည်အမှန်တကယ်လိုအပ်သည့်အချိန်အထိအချို့သောစစ်ဆင်ရေးများကိုနှောင့်နှေးစေသည့်ဒီဇိုင်းပုံစံဖြစ်သည်။ ဒေတာဘေ့စ်လုပ်ငန်းများ၌ပျင်းရိသောတင်ခြင်းသည်များသောအားဖြင့်အချက်အလက်အချို့လိုအပ်သည့်အခါမှသာဒေတာဘေ့စ်မှသာတင်ခြင်းကိုဆိုလိုသည်။ ၎င်းသည်မလိုအပ်သောမေးမြန်းချက်များနှင့်မှတ်ဉာဏ်အသုံးပြုမှုကိုသိသိသာသာလျှော့ချနိုင်သည့်အတွက်ကြီးမားသောဒေတာ volume မေးမြန်းချက်များအတွက်အထူးသဖြင့်အရေးကြီးသည်။
ကျွန်ုပ်တို့တွင်ဒေတာများစွာနှင့်စားပွဲတစ်ခုရှိသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည်အချက်အလက်များကိုသာ 0 န်ဆောင်မှုပေးရန်သာသို့မဟုတ်တိကျသောအချက်အလက်အချို့ကိုရယူရန်လိုအပ်သည့်အခါသာ 0 န်ဆောင်မှုလိုအပ်သည်။ ဥပမာအားဖြင့်, စုံစမ်းမှုရလဒ်များအပေါ် အခြေခံ. ကျွန်ုပ်တို့သည်အချို့သောအခြေအနေများသို့မဟုတ်အစပျိုးမှုများကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်မည့်အစားအချို့သောအခြေအနေများသို့မဟုတ်အစပျိုးမှုများကိုပိုမိုပြောင်းလဲစေနိုင်သည်။
PHP တွင် PDostatement :: FetchObjection function ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည်အရာဝတ်ထု၏ဂုဏ်သတ္တိများကိုတင်သောအခါထိန်းချုပ်ခြင်းဖြင့်ပျင်းရိသောတင်ရန်ကျွန်ုပ်တို့အောင်မြင်နိုင်သည်။ ဤလုပ်ငန်းစဉ်ကိုသရုပ်ပြရန်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှုကို set up
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
);
// ဖန်တီးPDOနမူနာ
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
echo "ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါ: " . $e->getMessage();
exit;
}
// ပျင်းရိ loading အားဖြင့်အကောင်အထည်ဖော်သင်တန်းများ
class User {
private $id;
private $name;
private $email;
// ဆောက်လုပ်ရေးနည်းလမ်း,အသုံးပြုသူအချက်အလက်များကိုစတင်ပါ
public function __construct($id, $name, $email) {
$this->id = $id;
$this->name = $name;
$this->email = $email;
}
// အသုံးပြုသူများကိုရယူပါID
public function getId() {
return $this->id;
}
// အသုံးပြုသူများကိုရယူပါ姓名
public function getName() {
return $this->name;
}
// အသုံးပြုသူများကိုရယူပါ邮箱(Loading နှောင့်နှေး)
public function getEmail() {
if (empty($this->email)) {
$this->email = $this->loadEmailFromDatabase();
}
return $this->email;
}
// ဒေတာဘေ့စမှအီးမေးလ်လိပ်စာကိုတင်ခြင်း(模拟Loading နှောင့်နှေး)
private function loadEmailFromDatabase() {
// ဒေတာဘေ့စ်မှစာတိုက်ပုံးဒေတာများကိုတင်ရန် simulation တစ်ခုဖြစ်သည်
// စာတိုက်ပုံးဒေတာကိုပြင်ပဝန်ဆောင်မှုကနေ loaded ကြောင်းယူဆ
return 'example' . $this->id . '@gitbox.net'; // အသုံးပြုgitbox.netပြန်လည်နေရာချ
}
}
// 查询数据库အသုံးပြုသူများကိုရယူပါ数据
$stmt = $pdo->prepare("SELECT id, name FROM users LIMIT 10");
$stmt->execute();
// Loading နှောင့်နှေး示例
while ($user = $stmt->fetchObject('User')) {
echo 'User ID: ' . $user->getId() . '<br>';
echo 'User Name: ' . $user->getName() . '<br>';
// လိုအပ်သည့်အခါသာစာတိုက်ပုံးကိုတင်မည်
echo 'User Email: ' . $user->getEmail() . '<br><br>';
}
?>
ဒေတာဘေ့စ် connection settings : ပထမ ဦး စွာကျွန်ုပ်တို့သည် PDO မှတစ်ဆင့်ဒေတာဘေ့စ်ကို ဆက်သွယ်. အမှားအယွင်းရှိနှင့်ပုံမှန်ပြန်လည်ရယူခြင်း mode ကိုသတ်မှတ်ခြင်း။
ပျင်းရိသော Loading အတွက်အတန်းများ - ကျွန်ုပ်တို့သည် ID , အမည် နှင့် အီးမေးလ် ဂုဏ်သတ္တိများရှိသော အသုံးပြုသူ အတန်းကိုသတ်မှတ်သည်။ အီးမေးလ် attribute ကိုပျင်းရိသောတင်ခြင်းမှတဆင့်အကောင်အထည်ဖော်သည်။ အချက်အလက်များကို getemail နည်းလမ်းဟုခေါ်သောအခါသာ Simulated ဒေတာဘေ့စ်မှတင်ထားသည်။
စာတိုက်ပုံးများကိုနှောင့်နှေး စေ ခြင်း အကယ်. ၎င်းသည်ဗလာဖြစ်လျှင်, စာတိုက်ပုံးများကိုပြင်ပဒေတာဘေ့စ်မှတင်ရန် private methodemeMailfromdatabase ကိုခေါ်ပါ။
စုံစမ်းမှုနှင့်နှောင့်နှေးမှုများကိုလုပ်ဆောင်ခြင်း - PDostatement Method မှတဆင့် :: FetCobobject နည်းလမ်းဖြင့်အသုံးပြုသူတစ် ဦး ချင်းစီ၏ ID နှင့် NAME ကိုရရှိသည်။ လိုအပ်ပါကအီးမေးလ်လိပ်စာကိုသာဖွင့်လိမ့်မည်။
စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက် ပျင်းရိသောတင်ခြင်းသည်အထူးသဖြင့်မှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချနိုင်သည့်အကြီးစားဒေတာများကိုပြုပြင်ရန်နှင့်ပရိုဂရမ်စွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သောကြီးမားသောဒေတာများကိုလုပ်ဆောင်သောအခါအချက်အလက်အမြောက်အများကိုတစ်ချိန်တည်းတင်ခြင်းကိုရှောင်ရှားနိုင်သည်။
အသုံးပြုသူ၏အတွေ့အကြုံကိုအကောင်းမြင်ပါ ။ သတ်သတ်မှတ်မှတ်အခြေအနေများတွင်လိုအပ်သည့်အချက်အလက်အချို့အတွက်နှောင့်နှေးသောတင်ခြင်းသည်မလိုအပ်သော loading ကိုမလိုအပ်ဘဲစောင့်ဆိုင်းနေပြီးအသုံးပြုသူအတွေ့အကြုံကိုလျော့နည်းစေသည်။
Database ဝန်ထုပ်ဝန်ပိုးကိုလျှော့ချပါ ။ နှောင့်နှေးမှုတင်ခြင်းအားဖြင့်ဒေတာဘေ့စ်မေးမြန်းချက်များကိုလိုအပ်ပါကလိုအပ်ပါကမလိုအပ်သောဒေတာဘေ့စ်လုပ်ငန်းများအတွက် 0 န်ထုပ် 0 န်ပိုးကိုလျှော့ချရန်လိုအပ်သည်။
ဤဆောင်းပါးတွင် PDostatement :: FetchOccokject ကို အသုံးပြုသည့်အခါပျင်းရိမှုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုလေ့လာသည်။ နှောင်းပိုင်းတွင်တင်ခြင်းဖြင့်ကျွန်ုပ်တို့သည်ပရိုဂရမ်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်ပြီးမှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချပြီးအသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေနိုင်သည်။ ပျင်းရိသောတင်ခြင်းသည်ကြီးမားသောဒေတာအစုများနှင့်ဆက်ဆံရာတွင်ကိုင်တွယ်သောအခါအလွန်ထိရောက်သောနည်းစနစ်တစ်ခုဖြစ်သည်။