လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement :: Fetter နှင့် PDO :: Fetter_obj

PDostatement :: Fetter နှင့် PDO :: Fetter_obj

gitbox 2025-06-07

pdostatement :: fetterall နှင့် pdo :: fetter_obj

PDostatement :: Fetchall သည် PDostatement လူတန်းစားတွင်ပါ 0 င်သည့်နည်းလမ်းတစ်ခုဖြစ်သည်။ PDO :: FETT_OBJ နှင့်အသုံးပြုပါကအတန်းတစ်ခုစီသည်အရာဝတ်ထုတစ်ခုအနေဖြင့်ပြန်လည်ရောက်ရှိပြီးကော်လံတစ်ခုစီ၏တန်ဖိုးသည်အရာဝတ်ထု၏ attribute တစ်ခုဖြစ်လာလိမ့်မည်။

ဤနည်းလမ်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
$dsn = 'mysql:host=localhost;dbname=gitbox_net_db;charset=utf8mb4';
$username = 'your_username';
$password = 'your_password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $sql = 'SELECT id, name, email FROM users';
    $stmt = $pdo->query($sql);

    $results = $stmt->fetchAll(PDO::FETCH_OBJ);

    foreach ($results as $user) {
        echo "ID: " . $user->id . "<br>";
        echo "Name: " . $user->name . "<br>";
        echo "Email: " . $user->email . "<br><br>";
    }
} catch (PDOException $e) {
    echo "Database error: " . $e->getMessage();
}
?>

အထက်ပါကုဒ်တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုအချက်အလက်များသည် domain name name name name name name name name name ကို အသုံးပြုသည် စုံစမ်းမှုမှပြန်လာသောအချက်အလက်များကိုအရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲခြင်းကိုအရာဝတ်ထုတစ်ခုထဲသို့ပြောင်းလဲပြီးကွင်းဆင်းအချက်အလက်များကိုအရာဝတ်ထုဂုဏ်သတ္တိများမှတစ်ဆင့်တိုက်ရိုက်ဝင်ရောက်သည်။


နှိုင်းယှဉ် Array ပြန်လာ

ပုံမှန်အားဖြင့်အဘယ်သူမျှမ parameters တွေကိုမလျှောက်ပါက fetchall () အညွှန်းကိန်းခင်းကျင်း။ PDO :: Fetter_obj ကို သုံးသောအခါ၎င်းသည်အရာဝတ်ထုတစ်ခုခင်းကျင်းမှုကိုပြန်လည်ရောက်စေသည်။ ဥပမာအားဖြင့်:

 // default အားဖြင့် Associative Array ကိုပြန်ပို့သည်
$results = $stmt->fetchAll(); // နှင့်ညီမျှ fetchAll(PDO::FETCH_BOTH)
echo $results[0]['name']; // Array မှတဆင့်ဝင်ရောက်ခြင်း

// အရာဝတ်ထုပြန်လာ
$results = $stmt->fetchAll(PDO::FETCH_OBJ);
echo $results[0]->name; // အရာဝတ်ထုမှတဆင့်ဝင်ရောက်ခွင့်

အရာဝတ်ထုချဉ်းကပ်မှုသည်အထူးသဖြင့် 0 န်ဆောင်မှုအလွှာ,


မှတ်သားရန်အရာ

  1. Field Name ရှေ့နောက်ညီညွတ်မှု - အရာဝတ်ထုနည်းလမ်းဖြင့်ပြန်လာသော attribute name သည်ဒေတာဘေ့စ်လယ်ကွင်းအမည်ပေါ်တွင်မူတည်သည်။ အင်္ဂလိပ်စာအသေးနှင့်အပြင်အဆင်ကိုမဖော်ပြရန်အကြံပြုသည်။

  2. စွမ်းဆောင်ရည်ထည့်သွင်းစဉ်းစားချက်များ - Fetchall () သည် ဒေတာအားလုံးကိုတစ်ပြိုင်တည်း load လုပ်လိမ့်မည်။ ၎င်းသည်ရလဒ်အနေဖြင့်မကြီးပါ။ အကယ်. ဒေတာ volume သည်ကြီးမားပါကကွင်းဆက်များနှင့်အညီ၎င်းကိုရယူရန် Fetch () ကို အသုံးပြုရန်အကြံပြုသည်။

  3. Model အတန်းများတိုးချဲ့သောအခါကန့်သတ်ချက်များ - Fetter_obj သည် အရာဝတ်ထုတစ်ခုကိုပြန်ပို့သော်လည်း၎င်းသည် stdclass ဥပမာတစ်ခုဖြစ်သည်။ စိတ်ကြိုက်လူတန်းစားအရာဝတ်ထုကိုပြန်ပို့ရန် PDO :: FETL_CLASS ကို သုံးပါ။