PHP တွင် PDO (PHP Data Oblatchs) တွင်ဒေတာဘေ့စ်များနှင့်အပြန်အလှန်ဆက်သွယ်မှုအတွက်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ ဒေတာဘေ့စ်ကိုဝင်ရောက်ရန်ပေါ့ပါး။ ပေါင်းသင်းနိုင်သော interface ကိုထောက်ပံ့ပေးသည်။ PDostatement :: Fetchobject () အချက်အလက်ရယူရန်နည်းလမ်းကိုအသုံးပြုသည့်အခါသင်တစ်ခါတစ်ရံတွင်အချည်းနှီးသောအရာဝတ်ထုများကိုပြန်လာသောအခြေအနေများနှင့်သင်ကြုံတွေ့ရနိုင်သည်။ ဤအခြေအနေသည် developer ကိုရှုပ်ထွေးစေပြီး၎င်းကိုမည်သို့ကိုင်တွယ်ရမည်ကိုမသိနိုင်ပါ။ ဤဆောင်းပါးသည်ဤအခြေအနေကိုမည်သို့ကိုင်တွယ်ဖြေရှင်းရမည်ကိုရှင်းပြပါမည်။
PDostatement :: Fetterobjectobject () Method သည် PDOSTOCTED () နည်းလမ်းသည် query quality quality quality quertion from မှအချက်အလက်များအတွက်ဒေတာတစ်ခုတည်းကိုရယူရန်ခွင့်ပြုသည့် feature တစ်ခုဖြစ်သည်။ Fetch () method ) နှင့်မတူသည်နှင့်မတူဘဲရလဒ်အတန်းကိုသတ်မှတ်ထားသောလူတန်းစား (သို့မဟုတ်အမည်မသိအတန်းအစားအရာဝတ်ထု) ကိုပြောင်းလဲစေသည်။
ဥပမာအားဖြင့်:
<?php
$stmt = $pdo->prepare('SELECT id, name FROM users WHERE id = :id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetchObject(); // မျဉ်းကြောင်းတစ်ခုနှင့်အရာဝတ်ထုသို့ပြောင်းလဲပါ
FetchOccject () ကို အချည်းနှီးသောအရာဝတ်ထုကိုပြန်ပို့ရန်ဟုခေါ်သောအခါအကြောင်းပြချက်များစွာရှိနိုင်သည်။
စုံစမ်းမှုတွင်ရလဒ်မရှိပါ။ အကယ်. စုံစမ်းမှုသည်မည်သည့်အချက်အလက်မဆိုအချက်အလက်များကိုမပြန်ပါက FetchObject () သည် မှားယွင်းစွာ ပြန်လာလိမ့်မည်။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည်စံသတ်မှတ်ချက်များနှင့်ကိုက်ညီမှုမရှိကြောင်းညွှန်ပြသည့်အချည်းနှီးသောအရာဝတ်ထုတစ်ခုကိုကျွန်ုပ်တို့ရရှိမည်ဖြစ်သည်။
Fields သည် Class Attribute များနှင့်မကိုက်ညီပါ။ အကယ်. သင်သည်စိတ်ကြိုက်စာသင်ခန်းထဲကိုဖြတ်သန်းသွားပါက class attribute name ကိုမကိုက်ညီပါက FetchOccoPject () သည် အချည်းနှီးသောအရာဝတ်ထုကိုပြန်ပို့နိုင်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ပုံမှန်အားဖြင့် default, fetchbobject () database fields ကိုအရာဝတ်ထုရဲ့ဂုဏ်သတ္တိများကိုမြေပုံဆွဲခြင်း
ဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problem နာ - ဒေတာဘေ့စ် connection နှင့်ပြ a နာတစ်ခုရှိပါကရှာဖွေမှုကိုအောင်မြင်စွာကွပ်မျက်ခံရခြင်းမပြုနိုင်ပါ။
ပထမ ဦး စွာ, စုံစမ်းမှုရလဒ်များဗလာမဟုတ်ကြောင်းသေချာပါစေ။ အကယ်. စုံစမ်းမှုတွင်ရလဒ်မရှိပါက FetchObject () Fetchobject () မှားယွင်းသော ပြန်လာလိမ့်မည်။ ထို့ကြောင့် FetchobjectObject ကို ခေါ်ဆိုပြီးနောက်, သင်သည်ပြန်လာတန်ဖိုးသည် မှားယွင်းသော ဟုတ်မဟုတ်ကိုပထမဆုံးစစ်ဆေးသင့်သည်။
<?php
$stmt = $pdo->prepare('SELECT id, name FROM users WHERE id = :id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetchObject();
if ($user === false) {
echo "အသုံးပြုသူမရှိပါ!";
} else {
echo "အသုံးပြုသူ ID: " . $user->id . ", အသုံးပြုသူ名: " . $user->name;
}
သင်စိတ်ကြိုက်အတန်းအစားကိုအသုံးပြုပါကအတန်း၏ဂုဏ်သတ္တိများနှင့်မကိုက်ညီပါကအတန်းအစားကိုမှန်ကန်စွာလက်ခံရရှိနိုင်အောင်ပြုလုပ်နိုင်ရန်အတွက်သင်ဟာ conferencor သို့မဟုတ် __set () နည်းလမ်းကိုသုံးနိုင်သည်။
class User {
public $id;
public $name;
public function __construct($id = null, $name = null) {
$this->id = $id;
$this->name = $name;
}
public function __set($name, $value) {
// dynamicy field names အရသိရသည် attribute တန်ဖိုးများကို set
$this->$name = $value;
}
}
$stmt = $pdo->prepare('SELECT id, name FROM users WHERE id = :id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetchObject('User');
if ($user) {
echo "အသုံးပြုသူ ID: " . $user->id . ", အသုံးပြုသူ名: " . $user->name;
} else {
echo "အသုံးပြုသူမရှိပါ!";
}
အကယ်. Fetchobjectobject () သည် အချည်းနှီးသောအရာဝတ်ထုတစ်ခုကိုအမြဲတမ်းပြန်ပို့ပါက, ဒေတာဘေ့စ်ဆာဗာသည်ပျက်ယွင်းနေသည်ကိုသေချာအောင်လုပ်ပါ။
<?php
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('SELECT id, name FROM users WHERE id = :id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetchObject();
if ($user === false) {
echo "Query မအောင်မြင်ပါ, ဒေတာမရှိပါ!";
} else {
echo "အသုံးပြုသူ ID: " . $user->id . ", အသုံးပြုသူ名: " . $user->name;
}
အကယ်. ပြ the နာဆက်ရှိနေပါကစုံစမ်းမှုကိုယ်နှိုက်သည် SQL query ကို debing လုပ်ခြင်းဖြင့်မမှန်ကန်ကြောင်းသင်အတည်ပြုနိုင်သည်။ သင်မျှော်လင့်ထားသည့်အချက်အလက်များတည်ရှိမရှိမရှိကြည့်ရန်ရှာဖွေမှုရလဒ်များကိုရှာဖွေရန်ရလဒ်များကို output လုပ်ရန် var_dump () သို့မဟုတ် ) output ကိုသုံးနိုင်သည်။
<?php
$stmt = $pdo->prepare('SELECT id, name FROM users WHERE id = :id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
// ထုတ်လုပ်ခြင်း SQL ရလဒ်များ
var_dump($stmt->fetchAll());
PDostatement :: Fetchobjectobject ()) အ ခွင့်အလမ်းသည်အချည်းနှီးသောအရာဝတ်ထုတစ်ခုသို့ပြန်ပို့သည်။ ဤပြ problem နာသည်ပြန်လည်ထူထောင်ရေးတန်ဖိုးကိုစစ်ဆေးခြင်းအားဖြင့်ပြန်လည်နေရာချထားခြင်းနှင့်ဖြည့်ဆည်းပေးနိုင်ပြီးလယ်ကွင်းများသည်အတန်း၏ attribute များနှင့်ဆွေးနွေးမှုများပြုလုပ်ရန်သေချာစေခြင်းအားဖြင့်ဖြေရှင်းနိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကောင်းသောအမှားကိုင်တွယ်ခြင်းနှင့် debugging နည်းလမ်းများသည်လျှောက်လွှာတည်ငြိမ်မှုနှင့်ထိန်းသိမ်းမှုကိုသေချာစေရန်သော့ချက်ဖြစ်သည်။