PHP ၏ PDO ကိုဒေတာဘေ့စ်ကိုအသုံးပြုမည့် PDostatement :: Fetterobjection () method သည်အလွန်အဆင်ပြေသည်, ၎င်းသည် query ကိုအရာဝတ်ထုတစ်ခုသို့တိုက်ရိုက်မြေပုံဆွဲနိုင်သည်။ သို့သော်ဒေတာဘေ့စ်ကွက်လပ်တွင် ( ထိုကဲ့သို့သော datetime , timestamp အမျိုးအစားများ) တွင်ပါ 0 င်သည့်အခါ,
ဤဆောင်းပါးသည် flagjectobject ကို အသုံးပြု. လက်တွေ့ကျသောဥပမာများပေးသည့်အခါဤ dateTime fields များကိုမည်သို့မှန်ကန်စွာကိုင်တွယ်ရမည်ကိုရှင်းပြပါလိမ့်မည်။
အသုံးပြုသူဇယား အသုံးပြုသူ တစ် ဦး သည်အောက်ပါအတိုင်းဖြစ်သည်ဆိုပါစို့။
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL
);
အချက်အလက်ထည့်ပါ။
INSERT INTO users (name, created_at) VALUES ('Alice', '2025-04-27 14:30:00');
အချက်အလက်ရယူရန် FetCObjectObject ကို သုံးပါ။
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 1');
$user = $stmt->fetchObject();
echo $user->created_at;
?>
output သည် ပုံမှန် string ကို ဖြစ်သည်။
2025-04-27 14:30:00
အကယ်. သင်က subject_at တွင်ထည့်သွင်းခြင်း, နုတ်ခြင်းနှင့်အခြားလုပ်ဆောင်မှုများကိုထည့်သွင်းလိုပါက၎င်းကိုသင်ကိုယ်တိုင်အလိုလျမျောပါသော datetime class နှင့်ကိုယ်တိုင်ပြောင်းလဲရန်လိုအပ်သည်။
အဲဒါကိုလျောက်ပတ်စွာကိုင်တွယ်ရန်အသုံးအများဆုံးနည်းလမ်းနှစ်မျိုးရှိသည် -
အရာဝတ်ထုကိုရယူပြီးနောက်တွင်ရက်စွဲကို datetime အရာဝတ်ထုသို့ချက်ချင်းပြောင်းပါ။
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 1');
$user = $stmt->fetchObject();
if ($user && isset($user->created_at)) {
$user->created_at = new DateTime($user->created_at);
}
// ယခု၎င်းကိုတိုက်ရိုက်အသုံးပြုနိုင်သည် DateTime နည်းလမ်း
echo $user->created_at->format('Yခုနှစ်mလdနေ့ H:i:s');
?>
ဤနည်းလမ်းသည်ရိုးရှင်းသော်လည်း အချိန်တိုင်းတွင်လက်ဖြင့်ပြောင်းလဲရန်လိုအပ်သည် ။ စားပွဲတင်ဖွဲ့စည်းပုံသည်ရှုပ်ထွေးမှုသို့မဟုတ်နယ်ပယ်များစွာရှိလျှင်ပြုပြင်ထိန်းသိမ်းမှုကုန်ကျစရိတ်တိုးလာလိမ့်မည်။
Entity Class ကိုဖန်တီးပါ, သက်ဆိုင်ရာ attribute type အမျိုးအစားကိုသတ်မှတ်ပါ။
<?php
class User
{
public int $id;
public string $name;
public DateTime $created_at;
public function __construct()
{
// မူရင်း string ကိုထည့်သွင်းရန်လိုအပ်သည် created_at ကူးပြောင်း DateTime ကန့်ကွက်
if (is_string($this->created_at)) {
$this->created_at = new DateTime($this->created_at);
}
}
}
?>
FetchOccoP ကို အသုံးပြုသည့်အခါအတန်းအမည်ကိုသတ်မှတ်ပါ -
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 1');
$user = $stmt->fetchObject(User::class);
echo $user->created_at->format('Y-m-d H:i:s');
?>
ဤသို့ပြုလုပ်ခြင်း၏အကျိုးကျေးဇူးများမှာ -
အဆိုပါကုဒ်ရှင်းလင်းဖြစ်ပါတယ်
ပျောက်ဆုံးသောလယ်ပြင်အပြောင်းအလဲကိုရှောင်ကြဉ်ပါ
အရာဝတ်ထုဖွဲ့စည်းပုံသည်ပိုမိုစံနှုန်းများကိုအလိုအလျောက်ပြည့်စုံစေရန်ပိုမိုလွယ်ကူစေသည်
ပိုကြီးတဲ့စီမံကိန်းများသို့မဟုတ်ရေရှည်ပြုပြင်ထိန်းသိမ်းမှုများအတွက်သင့်လျော်သော
အကယ်. သင်၏ PHP ဗားရှင်းက၎င်းကိုအထောက်အကူပြုပါက Php 8.0 တွင် PHP 8.0 တွင်စတင်မိတ်ဆက်ခဲ့သောဆောက်လုပ်ရေးအိမ်ခြံမြေမြှင့်တင်ရေးအစီအစဉ်များကိုပေါင်းစပ်ထားသည့် အိမ်ခြံမြေဆိုင်ရာကြေညာချက်များကို ပေါင်းစပ်နိုင်သည်။
တစ်ချိန်တည်းမှာပင် Database မှပြန်လာသောကွက်လပ်ပုံစံသည် ISO စံ ( Yyyy-MM-DD HH: MM: MM: SS ) သည် Datetime ပျက်ကွက်မှုကိုရှောင်ရှားရန်သေချာစေပါ။
PDostatement :: FetchOccess (),) , နေ့စွဲနှင့်အချိန်ကုန်ဆုံးသောနေ့ရက်များကိုတိုက်ရိုက်ပြန်ရောက်သည့်အချိန်သည် string တစ်ခုဖြစ်သည်။ အကယ်. သင်သည်ကြော့ရှင်းသောကုသမှုကိုလိုအပ်လျှင်၎င်းကိုအကြံပြုသည်။
သေးငယ်တဲ့ပစ္စည်းများကိုဖယ်ရှားပြီးနောက် dateTime မှတစ် ဦး datetime မှပြောင်းလဲနိုင်ပါတယ်
ကြီးမားသောစီမံကိန်းများသို့မဟုတ်စံချိန်စံညွှန်းဖွံ့ဖြိုးရေးဖွံ့ဖြိုးတိုးတက်မှုတွင် Custom entity အတန်းများကိုအသုံးပြုရန်အထူးအကြံပြုလိုပါသည်။
entity အတန်းများကိုဒီဇိုင်းရေးဆွဲခြင်းအားဖြင့်ကုဒ်၏ကြံ့ခိုင်မှုနှင့်ထိန်းသိမ်းမှုကိုများစွာတိုးတက်စေနိုင်သည်။
PDO အသုံးပြုမှုအကြံပေးချက်များအကြောင်းပိုမိုသိလိုပါက တရားဝင်စာရွက်စာတမ်းများကို သင်ရည်ညွှန်းနိုင်သည်။