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

PDostatement :: Fetchobject အချည်းနှီးသောအရာတစ်ခုသို့ပြန်ပို့သည်

gitbox 2025-05-11

ဒေတာဘေ့စ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက် PMP ကိုအသုံးပြုသောအခါ PDostatement :: Fetchobjectobject () Fetchobject () သည်အလွန်လက်တွေ့ကျသောနည်းလမ်းဖြစ်သည်။ ၎င်းသည် Query သည်အလွယ်တကူလုပ်ဆောင်ရန်အတွက်အရာဝတ်ထုတစ်ခုသို့ဖြစ်ပေါ်စေနိုင်သည်။ သို့သော်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည် Fetchocbobject () မှားယွင်းသော သို့မဟုတ်အချည်းနှီးသောအရာဝတ်ထုများကိုပြန်လည်ရောက်ရှိသည့်အခြေအနေကိုတစ်ခါတစ်ရံကြုံတွေ့ရသည်။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏ဘုံအကြောင်းများနှင့်သက်ဆိုင်ရာဖြေရှင်းနည်းများကိုအသေးစိတ်လေ့လာလိမ့်မည်။

1 ။ ဘုံအကြောင်းတရားများကိုခွဲခြမ်းစိတ်ဖြာခြင်း

1 ။ စုံစမ်းမှုရလဒ်သည်ဗလာဖြစ်သည်

အကယ်. ကွပ်မျက်ခံရသော SQL ကြေငြာချက် သည် မည်သည့်မှတ်တမ်းနှင့်မကိုက်ညီပါ က , ၎င်းသည်လျစ်လျူရှုရန်အသုံးအများဆုံးနှင့်အလွယ်ကူဆုံးအကြောင်းပြချက်များထဲမှတစ်ခုဖြစ်သည်။

နမူနာကုဒ်:

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'user', 'password');
$stmt = $pdo->query('SELECT * FROM users WHERE id = 999'); // ယူဆချက် ID 999 မတည်ရှိပါဘူး
$obj = $stmt->fetchObject();

if (!$obj) {
    echo "ဒေတာမတွေ့ပါ";
}
?>

ဖြေရှင်းချက် -
SQL Query သည်အချက်အလက်များကိုမှန်ကန်စွာပြန်ပို့နိုင်သလားဆိုတာကိုအတည်ပြုရန်ပရိုဂရမ်သို့မှတ်တမ်းများကိုသင်ထည့်နိုင်သည်သို့မဟုတ် query query ကို database client တစ်ခု ( PHPMYADMMMIN ) နှင့်တိုက်ရိုက်စစ်ဆေးနိုင်သည်။

2 ။ SQL ကွပ်မျက်အမှား

အကယ်. စုံစမ်းမှုကြေငြာချက် သည် syntax အမှားများသို့မဟုတ်ဒေတာဘေ့စ်ခြွင်းချက်များရှိပါ က ,

နမူနာကုဒ်:

 <?php
$stmt = $pdo->query('SELECT FROM users'); // ပျက်ပြယ်,SQLအမှား
if ($stmt === false) {
    echo "SQLExecution မအောင်မြင်ပါ";
}
?>

ဖြေရှင်းချက် -
Query () သို့မဟုတ် ပြင်ဆင်ခြင်း () သို့မဟုတ်ပြင်ဆင်ပါ () နှင့် PDO :: အမှားအယွင်းများ ကိုအသုံးပြုပါ။

3 ။ မှားကော်လံအမည်ကိုအသုံးပြုခဲ့သည်

အကယ်. စုံစမ်းမှု၏ကော်လံအမည်ကိုမှားယွင်းစွာရေးသားထားပါကပုံမှန်အားဖြင့်ပုံမှန်အားဖြင့် execute လုပ်နိုင်သော်လည်း, ပြန်လည်ရယူထားသောအချက်အလက်များသည်မမှန်ကန်ပါ

နမူနာကုဒ်:

 <?php
$stmt = $pdo->query('SELECT id, username FROM users');
$obj = $stmt->fetchObject();

echo $obj->email; // မှတ်သား:email字段မတည်ရှိပါဘူး
?>

ဖြေရှင်းချက် -
စုံစမ်းမှုကြေငြာချက်တွင်သင်လိုအပ်သောနယ်ပယ်အားလုံးပါ 0 င်ကြောင်းနှင့်လယ်ကွင်းအမည်များမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ။

4 ။ အမှားရယူခြင်းနည်းလမ်းကိုအသုံးပြုခဲ့သည်

Fetchobject () ပုံမှန်အားဖြင့် stdclass အရာဝတ်ထုသို့ Row ဒေတာများကိုမြေပုံများပို့ပေးပါ။ အကယ်. သင်၏ကုဒ်သို့မဟုတ်ယုတ္တိဗေဒသည်တိကျသောလူတန်းစားမြေပုံတစ်ခုလိုအပ်ပါကအတန်းအမည်ကိုသတ်မှတ်ရန်မေ့နေပါကပြန်လည်ရယူထားသောအရာဝတ်ထုသည်အသုံးမပြုနိုင်ပါ။

နမူနာကုဒ်:

 <?php
class User {
    public $id;
    public $username;
}

$stmt = $pdo->query('SELECT id, username FROM users');
$obj = $stmt->fetchObject('User');
?>

အသုံးပြုသူ အတန်းအစားမရှိပါသို့မဟုတ်ဆောက်လုပ်ရေးတွင်ရှုပ်ထွေးသော parameter လိုအပ်ချက်များရှိပါက FetchOccokject () သည် ကျရှုံးနိုင်သည်။

ဖြေရှင်းချက် -

  • သတ်မှတ်ထားသောလူတန်းစားတည်ရှိသေချာပါစေ။

  • အကယ်. အတန်းတွင်ဆောက်လုပ်ရေး parameters တွေကိုပါက parameter ကို array ကို fetchjectobject သို့ဖြတ်သန်းနိုင်သည်။

  • အတန်း၏ဆောက်လုပ်ရေးကိုတတ်နိုင်သမျှရိုးရှင်းအောင်ထားပါ,

5 ။ FetchObjectobject () အကြိမ်ပေါင်းများစွာခေါ်ဆိုပါ

FetterObjectobject () ကိုခေါ်သည့်အခါတိုင်း, အတွင်းပိုင်းညွှန်ကြားချက်တစ်ခုသည်လိုင်းတစ်ခုသို့တစ်လိုင်းကိုရှေ့သို့ရွှေ့လိမ့်မည်။ သင်မတော်တဆခေါ်ဆိုမှုကိုအကြိမ်ကြိမ်ခေါ်ဆိုပါကဒုတိယအကြိမ်ပြီးနောက်အလွတ်ပြန်လာနိုင်သည်။

နမူနာကုဒ်:

 <?php
$obj1 = $stmt->fetchObject();
$obj2 = $stmt->fetchObject(); // ဒေတာတစ်တန်းသာရှိလျှင်,ဒါ false
?>

ဖြေရှင်းချက် -

  • ဒေတာအမျိုးမျိုးကိုအမျိုးအစားများ process လုပ်ရန်ကွင်းများကိုသုံးပါ။

  • ၎င်းကိုတစ်ကြိမ်ခေါ်ဆိုပြီးနောက်မတော်တဆမခေါ်ပါနှင့်။

2 ။ အကျဉ်းချုပ်နှင့်အကောင်းဆုံးအလေ့အကျင့်

  • မေးမြန်းခြင်းမပြုမီ SQL သည်မှန်ကန်ပြီးလယ်ကွင်းအမည်သည်တိကျမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ။

  • စုံစမ်းမှုအပြီးတွင်, $ stmt သည် မှားသည် ကိုစစ်ဆေးပါ။

  • FetchOccoboject () ကိုခေါ်ပြီးနောက်, ပြန်လာတန်ဖိုးသည် မှားသည် ကိုဆုံးဖြတ်ပါ။

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

  • Multi-Row ဒေတာများကို ($ obj = $ stmt-> fetchobject ()) ကွင်းဆက်ကို သုံး. အသုံးပြုသည်။

အထက်ပါစစ်ဆေးရေးအဆင့်များမှတဆင့်မျက်မမြင်စုံစမ်းစစ်ဆေးမှုကြောင့်အချည်းနှီးသောအချိန် ကို အဘယ်ကြောင့်ပြန်လာရသည့်အကြောင်းရင်းကိုအလျင်အမြန်ရှာဖွေနိုင်သည်။