လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement သုံး. ဒေတာအမျိုးအစားပြောင်းလဲခြင်းနည်းလမ်းများ :: Fetchobject

PDostatement သုံး. ဒေတာအမျိုးအစားပြောင်းလဲခြင်းနည်းလမ်းများ :: Fetchobject

gitbox 2025-05-11

PHP, PDO (PHP Data Obserts) ကို အသုံးပြု. ဒေတာဘေ့စ်များကိုအသုံးပြုသောအခါအသုံးပြုသောဒေတာဘေ့စ်၏အမျိုးအစားများကို 0 င်ရောက်နိုင်ရန်အတွက်သတ်မှတ်ထားသော interface ကိုထောက်ပံ့ပေးသော database abstraction layer ဖြစ်သည်။ PDO တွင် PDOSTATECY တွင် :: Fetchobject သည် query ကိုအရာဝတ်ထုများကိုအရာဝတ်ထုများသို့ပြောင်းလဲစေသောအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဒေတာလုပ်ငန်းများကိုလွယ်ကူစွာရိုးရှင်းအောင်မလုပ်နိုင်ပါ, သို့သော်အမှန်တကယ်လိုအပ်ချက်များကိုဖြည့်ဆည်းရန်ဒေတာအမျိုးအစားပြောင်းလဲခြင်းကိုလည်းပြုလုပ်နိုင်သည်။

1 ။ PDostatement မှနိဒါန်း :: Fetchobject

အဆိုပါ fetchocbobject function ကို query ရလဒ်အနေဖြင့်ဒေတာအတန်းကိုထုတ်ယူပြီးအရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲပြီးအရာဝတ်ထုကိုပြန်ပို့သည်။ သင်အတန်းကိုကူးပြောင်းခံရဖို့အတန်းအစားကိုသတ်မှတ်ရန်သို့မဟုတ်ပုံမှန်အရာဝတ်ထုကို default ( stdclass ) ကိုပြန်ပို့ပေးနိုင်သည်။

အခြေခံ syntax:

 $pdoStatement->fetchObject($class_name, $parameters);
  • $ class_name (optional): ပြောင်းလဲခံရဖို့အတန်းအမည်ကိုဖေါ်ပြသည်။ မထောက်ပံ့လျှင်ပုံမှန်သည် stdclass ဖြစ်သည်။

  • $ Parameters (optional) - ဆောက်လုပ်ရေးအတွက်ထောက်ပံ့ပေးသော parameters တွေကိုတစ်ခုခင်းကျင်း။

ဥပမာ -

 $pdoStatement = $pdo->query('SELECT * FROM users');
$user = $pdoStatement->fetchObject('User');

အထက်ပါဥပမာတွင် query ရလဒ်ကို အသုံးပြုသူ အတန်းအစားတစ်ခု၏အရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲလိမ့်မည်။

2 ။ ဒေတာအမျိုးအစားပြောင်းလဲခြင်းအကောင်အထည်ဖော်ရန်အတွက်သိကောင်းစရာများ

အချို့သောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့သည်ရှာဖွေမှုရလဒ်ရှိလယ်ကွင်းများတွင်ဒေတာအမျိုးအစားပြောင်းလဲခြင်းကိုလုပ်ဆောင်ရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်, Timestamp နေရာကိုဒေတာဘေ့စ်ရှိ Datetime Office သို့ပြောင်းပါသို့မဟုတ် string ကိုကိန်းတစ်ခုသို့ပြောင်းပါ။ FetchOccobject function သည်ပြောင်းလွယ်ပြင်လွယ်ရှိသောပြောင်းလွယ်ပြင်လွယ်များကိုပြုလုပ်ပေးသည်။

ဥပမာ - Timestamp Field ကို Datetime Object သို့ပြောင်းပါ

ကျွန်ုပ်တို့တွင် ID , ခေါင်းစဉ် နှင့် created_at ( timestamp ၏နယ်ပယ်) ပါ 0 င်သည့် ပို့စ်များ စားပွဲပေါ်မှာပါ 0 င်သည်ဆိုပါစို့။ ကျနော်တို့ ဖန်တီးမှု '' ကို datetime အရာဝတ်ထုမှပြောင်းလဲချင်တယ်။

 class Post
{
    public $id;
    public $title;
    public $created_at;

    // လမ်းဆောက်လုပ်ရေး
    public function __construct($id, $title, $created_at)
    {
        $this->id = $id;
        $this->title = $title;

        // သေတမ်းစာ created_at string ကိုကူးပြောင်း DateTime ကန့်ကွက်
        $this->created_at = new DateTime($created_at);
    }
}

$pdoStatement = $pdo->query('SELECT id, title, created_at FROM posts');
$post = $pdoStatement->fetchObject('Post');

// ပြောင်းလဲလာသောရလဒ် output ကို
echo $post->created_at->format('Y-m-d H:i:s');

ခွဲခြမ်းစိတ်ဖြာခြင်း

  • ပို့စ် အတန်းအစား၏ constructor တွင်ကျွန်ုပ်တို့သည် ဖန်တီးမှု နယ်ပယ်၏တန်ဖိုးကိုလက်ခံပြီး၎င်းကို datetime object တစ်ခုသို့ပြောင်းကြသည်။

  • ဤနည်းအားဖြင့်ဒေတာဘေ့စ်မှအချက်အလက်များရသောအခါ, Create_at Field သည် Datestime Office ဖြစ်လာပြီးရက်စွဲစစ်ဆင်ရေးများကိုလွယ်ကူချောမွေ့စေနိုင်သည်။

3 ။ အခြားဘုံဒေတာအမျိုးအစားပြောင်းလဲမှုများကိုအကောင်အထည်ဖော်ရန် FetchObject ကို သုံးပါ

DateTime အမျိုးအစားပြောင်းလဲခြင်းအပြင်ဒေတာများကိုလည်းအခြားအမျိုးအစားများသို့ပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့် စျေးနှုန်း ကိုဒေတာဘေ့စ်ရှိ floating နံပါတ်သို့ပြောင်းပါသို့မဟုတ်သိုလှောင်ထားသော JSONS string ကို PHP Array သို့ပြောင်းပါ။

ဥပမာ - စျေးနှုန်း ကို floating နံပါတ်သို့ပြောင်းပါ

 class Product
{
    public $id;
    public $name;
    public $price;

    public function __construct($id, $name, $price)
    {
        $this->id = $id;
        $this->name = $name;

        // သေတမ်းစာ price floating နံပါတ်များကိုကူးပြောင်းပြောင်းလဲခြင်း
        $this->price = (float) $price;
    }
}

$pdoStatement = $pdo->query('SELECT id, name, price FROM products');
$product = $pdoStatement->fetchObject('Product');

// ပြောင်းလဲလာသောရလဒ် output ကို
echo $product->price;

ခွဲခြမ်းစိတ်ဖြာခြင်း

  • ထုတ်ကုန် အတန်းအစား၏ကန့်သတ်ချက်တွင် ဈေးကွက် ကို floating နံပါတ်တစ်ခုသို့ချထားသည်။ ဤနည်းအားဖြင့်သင်္ချာစစ်ဆင်ရေးများကိုအသုံးပြုသောအခါတိုက်ရိုက်လုပ်ဆောင်နိုင်သည်။

4 ။ မှတ်စုများ

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

  • အမှားကိုင်တွယ်ခြင်း - field data type သည် target type နှင့်သဟဇာတဖြစ်အောင်ပြုလုပ်ပါ။ ဥပမာအားဖြင့် DateTime သို့ယနေ့ခေတ် format ကို ပြောင်းလဲ. မရပါစေသော string တစ်ခုကိုဖြတ်သန်းခြင်းသည်အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။

  • Null value processing : အကယ်. ကွင်းဆင်းတန်ဖိုးကို Null ဖြစ်လျှင်အမှားအယွင်းများကိုရှောင်ရှားရန်ပြောင်းလဲခြင်းတွင်ဆုံးဖြတ်ရန်လိုအပ်သည်။

အထက်ပါနည်းစနစ်များမှတဆင့်ကျွန်ုပ်တို့သည် piTostatement :: Fletocible Data အမျိုးအစားပြောင်းလဲခြင်းကိုရရှိရန်အတွက် PDostatement :: FetCoboject ကိုအပြည့်အဝအသုံးချနိုင်သည်။ ၎င်းသည်ကုဒ်၏ဖတ်ရလွယ်ကူခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေသည်သာမကဒေတာလုပ်ဆောင်မှုများသည်ပိုမိုထိရောက်စွာနှင့်တိကျမှန်ကန်စေသည်။