PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PDO (PHP Data ords) ကိုအသုံးပြုလေ့ရှိသည်။ PDO နှင့်အတူကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ကိုအလွယ်တကူဆက်သွယ်နိုင်ပြီးအမျိုးမျိုးသောစုံစမ်းမှုစစ်ဆင်ရေးများကိုလုပ်ဆောင်နိုင်သည်။ PDostatement :: FetchObject Method ကိုသုံးသည့်အခါစုံစမ်းမှုရလဒ်များရရှိရန်အတွက်ကျွန်ုပ်တို့သည် 0 င်ရောက်မှုရလဒ်များကိုရယူရန်အတွက်ကျွန်ုပ်တို့သည်များသောအားဖြင့် 0 င်ရောက်မှုဆိုင်ရာအချက်အလက်များကိုပိုမိုအဆင်ပြေစေရန်မျှော်လင့်ပါသည်။ PHP ၏မှော်နည်းလမ်းများနှင့်ပေါင်းစပ်ပြီးကျွန်ုပ်တို့သည်ဤအချက်အလက်များကို ပို. ကြော့ရှင်းစွာနှင့်စုံတွဲများပြုလုပ်နိုင်သည်။
PDostatement :: Fetterobject သည် query query ကိုအရာဝတ်ထုအဖြစ်ပြန်ပို့ရန် PDO မှပေးသောနည်းလမ်းဖြစ်သည်။ ရိုးရာပြန်လာ Associative Array များနှင့်မတူဘဲ FetchocboPject သည် query query query ကိုအရာဝတ်ထုတစ်ခုသို့တိုက်ရိုက်မြေပုံများကိုတိုက်ရိုက်မြေပုံများကိုတိုက်ရိုက်မြေပုံများကိုတိုက်ရိုက်မြေပုံများကို သုံး. အရာဝတ်ထုတစ်ခု၏ uffered objected objected လည်ပတ်မှုနည်းလမ်းဖြင့်အသုံးပြုလိမ့်မည်။
$stmt = $pdo->query("SELECT id, name FROM users");
$user = $stmt->fetchObject();
echo $user->name;
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် 0 င်ရောက်မှုဆိုင်ရာအချက်အလက်များကိုအရာဝတ်ထု၏ပိုင်ဆိုင်မှုများမှတဆင့် 0 င်ရောက်ခြင်းကိုသာမကအရာဝတ်ထု၏ဂုဏ်သတ္တိများမှ 0 င်ရောက်ခြင်းကိုသာမကဤအချက်အလက်များတွင်ပိုမိုရှုပ်ထွေးသောလုပ်ငန်းများလုပ်ဆောင်ရန်လည်းမျှော်လင့်ပါသည်။ ဤအချိန်တွင် ( __ ဂျက် , __s ကြည့်ခြင်း , __s ) ကဲ့သို့သောမှော်နည်းလမ်းများ (ဥပမာ, __s) စသည်တို့) သည်အသုံးဝင်သည်။
__GAGET နှင့် __set နည်းလမ်းများမှတဆင့်အရာဝတ်ထု၏ဂုဏ်သတ္တိများကိုကျွန်ုပ်တို့ပြောင်းလဲနိုင်သည်။ ၎င်းသည်အခြေအနေများအတွက် format ချခြင်းသို့မဟုတ်တွက်ချက်မှုရလဒ်များကိုတွက်ချက်ရန်အတွက်အလွန်အသုံးဝင်သည်။
ဥပမာအားဖြင့်, ဒေတာဘေ့စ်မှရက်စွဲမှတ်တမ်းကိုကျွန်ုပ်တို့မေးမြန်းသောအခါ, နေ့စွဲကိုလယ်ကွင်းကိုမှော်နည်းလမ်းဖြင့်တိကျသောပုံစံသို့အလိုအလျောက်ပြောင်းလဲလိုသည်။ ဒီမှာဥပမာတစ်ခုပါ။
class User {
private $data = [];
public function __get($name) {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
return null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
// format နေ့စွဲလယ်ပြင်
public function getFormattedDate($name) {
if (isset($this->data[$name])) {
$date = new DateTime($this->data[$name]);
return $date->format('Y-m-d');
}
return null;
}
}
PDostatement :: FetchObject နည်းလမ်းဖြင့်ပေါင်းစပ်ထားသော, ကျွန်ုပ်တို့သည်စိတ်ကြိုက်သင်တန်းများဆောက်လုပ်ခြင်းဖြင့်ကျွန်ုပ်တို့လျောက်ပတ်သောစုံစမ်းမှုရလဒ်များကိုရှာဖွေတွေ့ရှိနိုင်သည်။ ဒေတာရှာဖွေမှုပြန်လည်ရောက်ရှိလာသောအခါ PDO သည်ဒေတာများကို အသုံးပြုသူ အတန်း၏ဂုဏ်သတ္တိများသို့မြေပုံများပို့သည်။
class User {
private $data = [];
public function __get($name) {
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
return null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
// format နေ့စွဲလယ်ပြင်
public function getFormattedDate($name) {
if (isset($this->data[$name])) {
$date = new DateTime($this->data[$name]);
return $date->format('Y-m-d');
}
return null;
}
}
$pdo = new PDO('mysql:host=gitbox.net;dbname=test', 'username', 'password');
$stmt = $pdo->query("SELECT id, name, created_at FROM users");
$user = $stmt->fetchObject('User');
// အသုံးပြုသူအမည်ရယူပါ
echo $user->name;
// formatted ဖန်ဆင်းခြင်းနေ့စွဲကိုရယူပါ
echo $user->getFormattedDate('created_at');
တခါတရံတွင်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောယုတ္တိရှိသောလုပ်ငန်းစဉ်များကိုလယ်ကွင်းအမည်ပေါ် မူတည်. dynamally ကွဲပြားခြားနားသော, __CAST မှော်နည်းလမ်းသည်အလွန်အသုံးဝင်လိမ့်မည်။ __Call က ကျွန်ုပ်တို့အားမတည်ရှိသည့်နည်းစနစ်များသို့ခေါ်ဆိုမှုများကိုကြားဖြတ်ရန်ခွင့်ပြုသည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် သုံးစွဲသူ အတန်းအစားရှိဒေတာနယ်ပယ်များနှင့်သက်ဆိုင်သောလုပ်ငန်းများလုပ်ဆောင်နိုင်မှုကိုပြုလုပ်နိုင်သည်။
class User {
private $data = [];
public function __get($name) {
return $this->data[$name] ?? null;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
// လယ်ပြင်ယုတ္တိဗေဒ၏ dynamic အပြောင်းအလဲနဲ့
public function __call($method, $arguments) {
if (strpos($method, 'get') === 0) {
$field = strtolower(substr($method, 3));
return isset($this->data[$field]) ? $this->data[$field] : null;
}
return null;
}
}
အပေါ်ကဥပမာမှာ __Call နည်းလမ်းက GetName () ဒါမှမဟုတ် getcreate လုပ်တဲ့နည်းစနစ် မဟုတ်တဲ့အတိအလင်းသတ်မှတ်ထားသောနည်းလမ်းများကို dvicitated deficited methods များကို dvicitically dvicitated methods များကို dynamally ဟုခေါ်ဆိုနိုင်သည်။ ဤသည် code ကိုပိုမိုအရွယ်အစားနှင့်ပြောင်းလွယ်ပြင်လွယ်စေလိမ့်မည်။
PDostatement ၏မှော်နည်းလမ်းကိုပေါင်းစပ်ခြင်းဖြင့် :: Fetchobject နှင့် PHP ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်မှအချက်အလက်များမေးနိုင်ပါသည်။ __GET , __SESS နှင့် __CAST ကဲ့သို့သောမှော်နည်းလမ်းများကို အသုံးပြု. ကျွန်ုပ်တို့သည်ပြောင်းလွယ်ပြင်လွယ်ရှိသောပိုင်ဆိုင်မှုလက်လှမ်းမီမှု, ဒေတာ formating နှင့် dynamic method calls ကိုရရှိနိုင်ပါသည်။ ဤချဉ်းကပ်နည်းသည်မလိုအပ်သောကုဒ်များကိုလျှော့ချရုံသာမကအချက်အလက်များအားပိုမိုအလိုလိုသိရှိနိုင်သည်။