လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement မှတစ်ဆင့်အမည်မသိအတန်းကို အသုံးပြု. Ononymous Class ကို အသုံးပြု. အရာဝတ်ထုစိတ်ကြိုက်ပြင်ဆင်ခြင်း :: FetCObject

PDostatement မှတစ်ဆင့်အမည်မသိအတန်းကို အသုံးပြု. Ononymous Class ကို အသုံးပြု. အရာဝတ်ထုစိတ်ကြိုက်ပြင်ဆင်ခြင်း :: FetCObject

gitbox 2025-05-29

PHP တွင် PDO သည်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်ဒေတာဘေ့စ် Access Tool ဖြစ်သည်။ ၎င်းသည် SQL Query များကို execute လုပ်ရန်နှင့်ပြန်လည်အချက်အလက်များကို pdostatement object မှတဆင့်လုပ်ဆောင်ရန်နည်းလမ်းများစွာကိုပေးသည်။ ဤဆောင်းပါးတွင် PDostatement :: Detabase Query Reject ၏ပြန်လာအရာဝတ်ထုကိုစိတ်ကြိုက်ပြုပြင်ရန်အမည်မသိအတန်းများနှင့်ပေါင်းစပ်ထားသော fetCobobject နည်းလမ်းကိုအသုံးပြုနည်း။

PDostatement ဆိုတာဘာလဲ :: FetCOBJOST?

PDostatement :: FetdoBOCTOCTOCTOCTOCT ဆိုသည်မှာအချက်အလက်များကို PDO မှအချက်အလက်များတစ်ခုစီကိုအသစ်ပြောင်းရန်နည်းလမ်းတစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့်၎င်းသည်ရလဒ်တစ်ခုချင်းစီကို PHP Object (STDCLASS) အဖြစ်ပြောင်းလဲပေးသည်။ သို့ရာတွင်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်အညီပြန်လာသောအရာဝတ်ထုကိုစိတ်ကြိုက်ပြုပြင်လိုပါက၎င်းကို FetchObject မှတစ်ဆင့်ပြုလုပ်နိုင်သည်။

အမည်မသိအတန်းကို အသုံးပြု. ပြန်လာသောအရာဝတ်ထုကိုစိတ်ကြိုက်ပြုလုပ်ပါ

PHP 7 သည်အမည်ဝှက်စာသင်ခန်းများ၏အယူအဆကိုအတန်းအစားအမည်များကိုအတိအလင်းမသတ်မှတ်ဘဲအတန်းများကိုဖန်တီးရန်ခွင့်ပြုသည်။ ၎င်းသည်စုံစမ်းမှုရလဒ်များတွင်တိကျသောစိတ်ကြိုက်အရာဝတ်ထုများကိုပြန်လာရာတွင်ပြောင်းလွယ်ပြင်လွယ်ရှိစေသည်။ ကျွန်ုပ်တို့သည် PDostatement :: Fetchobject ကို PDostatement :: Fetchockject ကိုပေါင်းစပ်။ အသုံးပြုနိုင်သည်။

ဥပမာ - ဒေတာဘေ့စ်စုံစမ်းမှုကိုအမည်မသိအတန်းမှတစ်ဆင့်ပြန်လည်ပေးပို့ပါ

ကျွန်ုပ်တို့တွင် ID , အမည် နှင့် အီးမေးလ် အကွက်များပါ 0 င်သည့်ဒေတာဘေ့စ်စားပွဲ အသုံးပြုသူ ရှိသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည် PDO ကို အသုံးပြု. Query ကို အသုံးပြု. အမည်မသိအတန်းမှတစ်ဆင့်ပြန်လာသောအရာဝတ်ထု format ကိုစိတ်ကြိုက်ပြုလုပ်ပါမည်။

 <?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှုကို configure
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';

try {
    // ဖန်တီး PDO နမူနာ
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // တစ် ဦး စုံစမ်းမှု execute
    $stmt = $pdo->query("SELECT id, name, email FROM users");

    // အသုံးပြု fetchObject နှင့်အမည်မသိအတန်းများပြန်ရလဒ်များ
    while ($user = $stmt->fetchObject(function($data) {
        // တစ် ဦး ထုံးစံအမည်မသိလူတန်းစားအရာဝတ်ထုကိုပြန်သွားပါ
        return new class($data) {
            public $id;
            public $name;
            public $email;

            public function __construct($data) {
                $this->id = $data->id;
                $this->name = $data->name;
                $this->email = $data->email;
            }

            // ထုံးစံနည်းလမ်းထည့်ပါ
            public function getFullName() {
                return strtoupper($this->name);
            }
        };
    })) {
        // အသုံးပြုသူတစ် ဦး ချင်းစီအတွက်သတင်းအချက်အလက်များကိုပုံနှိပ်ပါ
        echo "User ID: {$user->id}, Name: {$user->getFullName()}, Email: {$user->email}\n";
    }

} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>

code parsing

  1. ဒေတာဘေ့စ်ဆက်သွယ်မှု - ဒေတာဘေ့စ် connection account အသစ်ကို PDO အသစ် ဖြင့် ဖန်တီး. အမှားအယွင်းကို PDO :: ErrMode_ ErrMode_Exception သို့သတ်မှတ်ပါ။

  2. Query Execution - SQL query ကို execute လုပ်ရန် $ pdo-> query () နည်းလမ်းကို အသုံးပြု. အသုံးပြုသူများ စားပွဲမှ ID , အမည် နှင့် အီးမေးလ်များ ကိုရွေးချယ်ပါ။

  3. စိတ်ကြိုက်အမည်မသိအတန်းအစား - FetchObject နည်းလမ်းတွင်ကျွန်ုပ်တို့သည်အမည်မသိသော class constructor ကိုဖြတ်သန်းပြီးအချက်အလက်များအားရှာဖွေမှုရလဒ်များအပေါ် အခြေခံ. စိတ်ကြိုက်အရာဝတ်ထုကိုဖန်တီးသည်။

  4. Custom နည်းလမ်းများ - အမည်မသိအတန်းတစ်ခုတွင်သုံးစွဲသူအမည်ကိုအမြတ်ထုတ်ပေးသည့် complefullname () ကဲ့သို့သောစိတ်ကြိုက်နည်းလမ်းအချို့ကိုသတ်မှတ်နိုင်သည်။

  5. output ရလဒ် - အသုံးပြုသူအချက်အလက်များကိုတစ် ဦး အားဖြင့်တစ် ဦး တည်းဖြင့်ရယူပါ။ အသုံးပြုသူတစ် ဦး ချင်းစီ၏ ID တစ်ခု စီ ကို ပုံနှိပ် ပါ

FetchObject ကို အသုံးပြုခြင်း၏ကောင်းကျိုးများ

  • အပြင်းအထန်ပြောင်းလွယ်ပြင်လွယ် - အမည်မသိအတန်းများနှင့်အတူသင်လိုအပ်သောအရာဝတ်ထုများကိုလိုအပ်သလိုစိတ်ကြိုက်ပြုပြင်နိုင်သည်။

  • ရိုးရှင်းမှု - ကုဒ်သည်အတော်လေးအကောက်ကွဲစေပြီး query ရလဒ်တစ်ခုစီကိုကိုင်တွယ်ရန်အတန်းကိုအတိအလင်းသတ်မှတ်ရန်မလိုအပ်ပါ။

  • ကျယ်ပြန့်ခြင်း - အမည်မသိအတန်းများကိုမည်သည့်အချိန်တွင်မဆိုပြုပြင်နိုင်ပြီး query logic ကိုပြောင်းလဲခြင်းမပြုဘဲ attribute များနှင့်နည်းလမ်းများကိုထည့်နိုင်သည်။