PHP, PDO (PHP Data Obserts) ကို အသုံးပြု. ဒေတာဘေ့စ်များကိုအသုံးပြုသောအခါအသုံးပြုသောဒေတာဘေ့စ်၏အမျိုးအစားများကို 0 င်ရောက်နိုင်ရန်အတွက်သတ်မှတ်ထားသော interface ကိုထောက်ပံ့ပေးသော database abstraction layer ဖြစ်သည်။ PDO တွင် PDOSTATECY တွင် :: Fetchobject သည် query ကိုအရာဝတ်ထုများကိုအရာဝတ်ထုများသို့ပြောင်းလဲစေသောအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဒေတာလုပ်ငန်းများကိုလွယ်ကူစွာရိုးရှင်းအောင်မလုပ်နိုင်ပါ, သို့သော်အမှန်တကယ်လိုအပ်ချက်များကိုဖြည့်ဆည်းရန်ဒေတာအမျိုးအစားပြောင်းလဲခြင်းကိုလည်းပြုလုပ်နိုင်သည်။
အဆိုပါ fetchocbobject function ကို query ရလဒ်အနေဖြင့်ဒေတာအတန်းကိုထုတ်ယူပြီးအရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲပြီးအရာဝတ်ထုကိုပြန်ပို့သည်။ သင်အတန်းကိုကူးပြောင်းခံရဖို့အတန်းအစားကိုသတ်မှတ်ရန်သို့မဟုတ်ပုံမှန်အရာဝတ်ထုကို default ( stdclass ) ကိုပြန်ပို့ပေးနိုင်သည်။
$pdoStatement->fetchObject($class_name, $parameters);
$ class_name (optional): ပြောင်းလဲခံရဖို့အတန်းအမည်ကိုဖေါ်ပြသည်။ မထောက်ပံ့လျှင်ပုံမှန်သည် stdclass ဖြစ်သည်။
$ Parameters (optional) - ဆောက်လုပ်ရေးအတွက်ထောက်ပံ့ပေးသော parameters တွေကိုတစ်ခုခင်းကျင်း။
$pdoStatement = $pdo->query('SELECT * FROM users');
$user = $pdoStatement->fetchObject('User');
အထက်ပါဥပမာတွင် query ရလဒ်ကို အသုံးပြုသူ အတန်းအစားတစ်ခု၏အရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲလိမ့်မည်။
အချို့သောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့သည်ရှာဖွေမှုရလဒ်ရှိလယ်ကွင်းများတွင်ဒေတာအမျိုးအစားပြောင်းလဲခြင်းကိုလုပ်ဆောင်ရန်လိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်, Timestamp နေရာကိုဒေတာဘေ့စ်ရှိ Datetime Office သို့ပြောင်းပါသို့မဟုတ် string ကိုကိန်းတစ်ခုသို့ပြောင်းပါ။ FetchOccobject function သည်ပြောင်းလွယ်ပြင်လွယ်ရှိသောပြောင်းလွယ်ပြင်လွယ်များကိုပြုလုပ်ပေးသည်။
ကျွန်ုပ်တို့တွင် 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 ဖြစ်လာပြီးရက်စွဲစစ်ဆင်ရေးများကိုလွယ်ကူချောမွေ့စေနိုင်သည်။
DateTime အမျိုးအစားပြောင်းလဲခြင်းအပြင်ဒေတာများကိုလည်းအခြားအမျိုးအစားများသို့ပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့် စျေးနှုန်း ကိုဒေတာဘေ့စ်ရှိ floating နံပါတ်သို့ပြောင်းပါသို့မဟုတ်သိုလှောင်ထားသော JSONS string ကို PHP Array သို့ပြောင်းပါ။
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 နံပါတ်တစ်ခုသို့ချထားသည်။ ဤနည်းအားဖြင့်သင်္ချာစစ်ဆင်ရေးများကိုအသုံးပြုသောအခါတိုက်ရိုက်လုပ်ဆောင်နိုင်သည်။
စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများ - တည်ဆောက်သူမှတစ်ဆင့်အမျိုးအစားတစ်ခုစီသည်စွမ်းဆောင်ရည်ကိုအနည်းငယ်သာအကျိုးသက်ရောက်နိုင်သည်။ သင့်လျော်သောနည်းလမ်းကိုအမှန်တကယ်အခြေအနေအရရွေးချယ်သင့်သည်။
အမှားကိုင်တွယ်ခြင်း - field data type သည် target type နှင့်သဟဇာတဖြစ်အောင်ပြုလုပ်ပါ။ ဥပမာအားဖြင့် DateTime သို့ယနေ့ခေတ် format ကို ပြောင်းလဲ. မရပါစေသော string တစ်ခုကိုဖြတ်သန်းခြင်းသည်အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။
Null value processing : အကယ်. ကွင်းဆင်းတန်ဖိုးကို Null ဖြစ်လျှင်အမှားအယွင်းများကိုရှောင်ရှားရန်ပြောင်းလဲခြင်းတွင်ဆုံးဖြတ်ရန်လိုအပ်သည်။
အထက်ပါနည်းစနစ်များမှတဆင့်ကျွန်ုပ်တို့သည် piTostatement :: Fletocible Data အမျိုးအစားပြောင်းလဲခြင်းကိုရရှိရန်အတွက် PDostatement :: FetCoboject ကိုအပြည့်အဝအသုံးချနိုင်သည်။ ၎င်းသည်ကုဒ်၏ဖတ်ရလွယ်ကူခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေသည်သာမကဒေတာလုပ်ဆောင်မှုများသည်ပိုမိုထိရောက်စွာနှင့်တိကျမှန်ကန်စေသည်။