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

PDostatement အတွက် parameters တွေကို configuration နှင့်အသုံးပြုမှုကိုနားလည်ပါ။ :: Fetchobject

gitbox 2025-05-11

PDostatement :: Database Development အတွက် PHP ကို ​​PHP ကိုအသုံးပြုသောအခါ FetCoboject သည်အလွန်လက်တွေ့လုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည် query ကိုရိုးရာ Associative Array သို့မဟုတ် Index Array များအစားအရာဝတ်ထုတစ်ခုသို့တိုက်ရိုက်မြေပုံဆွဲနိုင်သည်။ ၎င်း၏ parameter သည် configuration နှင့်လက်တွေ့ application ကိုနားလည်ခြင်းသည်သင်၏ကုဒ်ကိုပိုမိုရှင်းလင်းစွာ,

ဤဆောင်းပါးသည်နက်ရှိုင်းစွာရှင်းပြပါမည်။

  • fetchocbject ၏အခန်းကဏ်။

  • parameters တွေကိုအသေးစိတ်ရှင်းပြချက်

  • ဘုံအသုံးပြုမှုအခြေအနေများနှင့်ကြိုတင်ကာကွယ်မှုများ

  • နမူနာကုဒ်သရုပ်ပြ

1 ။ pdostatement ၏အခန်းကဏ် ::: fetchobject

များသော အား ဖြင့် SQL Query များကိုကွပ်မျက်ခံရပြီးနောက်ရလဒ် အတန်းတစ်ခုဖြစ် သည့် Associative ခင်းကျင်းခြင်း,

အတိုချုပ်ပြောရလျှင်၎င်းသည်သင့်အားတင်းကျပ်သောအချက်အလက်များအစားဒေတာဘေ့စ်မှတိုက်ရိုက်သက်ရှိအရာဝတ်ထုကိုတိုက်ရိုက်ရယူရန်ခွင့်ပြုသည်။

2 ။ အသေးစိတ်အချက်အလက်များ၏အသေးစိတ်ရှင်းပြချက်

FetchOccject ၏အခြေခံလက်မှတ်သည်

 public PDOStatement::fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false

parameter သည်ရှင်းလင်းချက်:

တေးရေး ဥပမာပြပါ
$ အတန်း optionally , instantiate ဖို့ class name ကိုသတ်မှတ်ပါ။ default သည် stdclass ဖြစ်သည်။ သင့်တွင်ကိုယ်ပိုင်စံပြအတန်းအစားရှိပါကဤနေရာတွင်သင်သတ်မှတ်နိုင်သည်။
$ ဆောက်လုပ်ရေးဆောက်လုပ်ရေးoptional ကို , ဆောက်လုပ်ရေး parameter ကိုခင်းကျင်း။ အတန်းတစ်လူတန်းစားကိုချက်ချင်း parameters တွေကိုသွားလေ့ရှိတယ်။

Value ကိုပြန်သွားပါ

  • အောင်မြင်သောအခါအရာဝတ်ထုကိုပြန်ပို့သည်။

  • ပျက်ကွက်အပေါ် မှားယွင်းသော ပြန်လာ။

3 ။ လက်တွေ့ကျသော application အခြေအနေများ

1 ။ လျင်မြန်စွာအရာဝတ်ထုသို့ (ပုံမှန် stdclass) သို့ပြောင်းပါ။

Class Name ကိုမဖော်ပြဘဲအရိုးရှင်းဆုံးအသုံးပြုမှု -

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $pdo->query('SELECT id, name, email FROM users');
$user = $stmt->fetchObject();

echo $user->name;  // output username
?>

ဤအချိန်တွင် $ သုံးစွဲသူ သည် stdclass အရာဝတ်ထုတစ်ခုဖြစ်သည်။ attribute သည်ဒေတာဘေ့စ်နယ်ပယ်နှင့်ကိုက်ညီသည်။

2 ။ ထုံးစံအတန်းမှမြေပုံ

သင့်မှာ အသုံးပြုသူ အတန်းတစ်ခုရှိတယ်ဆိုပါစို့။

 <?php
class User {
    public $id;
    public $name;
    public $email;

    public function greet() {
        return "Hello, {$this->name}!";
    }
}
?>

Database Row ကို အသုံးပြုသူ အတန်းအစားအရာဝတ်ထုတစ်ခုထဲသို့ဖွင့်ရန် FetchocboPJOCTOBJOCTOCTOCT ကို သုံးပါ။

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $pdo->query('SELECT id, name, email FROM users');
$user = $stmt->fetchObject(User::class);

echo $user->greet();  // ထုတ်လုပ်ခြင်း "Hello, xxx!"
?>

၎င်းသည်အချက်အလက်များကိုရရှိမည်မဟုတ်ဘဲအရာဝတ်ထုကို ဦး စားပေးဒီဇိုင်းနှင့်အညီပိုမိုများပြားသောအရာဝတ်ထုနည်းလမ်းများကိုတိုက်ရိုက်ခေါ်ဆိုနိုင်သည်။

3 ။ ဆောက်လုပ်ရေး parameters တွေကိုနှင့်အတူအမှု

အကယ်. သင်၏အတန်းတွင်ဆောက်လုပ်ရေးလုပ်ငန်းတစ်ခုရှိပြီး parameters တွေကို pass လုပ်ရန်လိုအပ်ပါက၎င်းကိုသင်ဤကဲ့သို့သောကိုသုံးနိုင်သည်။

 <?php
class UserWithConstructor {
    public $id;
    public $name;
    public $email;

    public function __construct($prefix) {
        $this->name = $prefix . $this->name;
    }
}
?>

ခေါ်ဆိုသည့်အခါဆောက်လုပ်ရေး parameters တွေကိုဖြတ်သန်းပါ။

 <?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $pdo->query('SELECT id, name, email FROM users');
$user = $stmt->fetchObject(UserWithConstructor::class, ['Mr. ']);

echo $user->name;  // ထုတ်လုပ်ခြင်း "Mr. xxx"
?>

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

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

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

4 ။ လက်တွေ့ကျကျကိစ္စ - API သည်အသုံးပြုသူသတင်းအချက်အလက်အရာဝတ်ထုကိုပြန်ပို့သည်

အသုံးပြုသူအရာဝတ်ထုကိုသတ်မှတ်ထားသော ID ဖြင့်ပြန်ပေးရန် API တစ်ခုပြုလုပ်လိုသည်ဟုဆိုပါစို့။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
// parameters တွေကိုရယူပါ
$id = $_GET['id'] ?? 1;

$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $pdo->prepare('SELECT id, name, email FROM users WHERE id = :id');
$stmt->execute(['id' => $id]);
$user = $stmt->fetchObject(User::class);

if ($user) {
    header('Content-Type: application/json');
    echo json_encode($user);
} else {
    header("Location: https://gitbox.net/error/user-not-found");
}
?>

အသုံးပြုသူကိုတွေ့ပြီဆိုပါက API သည် JSON အရာဝတ်ထုကိုပြန်ပို့သည်။ အကယ်. ၎င်းကိုမတွေ့ပါက Gitbox.net ၏အမှားစာမျက်နှာသို့ခုန်ချသည်။

5 ။ အကျဉ်းချုပ်

  • FetchobjectObject သည်အထူးသဖြင့် MVC ပုံစံနှင့်ပေါင်းစပ်သောအခါ အရာဝတ်ထုကို ဦး စားပေးသည့်ဖွံ့ဖြိုးတိုးတက်မှု အတွက်သင့်တော်သည်။

  • $ Class နှင့် $ ဆောက်လုပ်ရေးကို အသုံးပြု. ကျွမ်းကျင်မှုသည်သင့်အားလက်ရေး 0 န်ဆောင်မှုကုဒ်ကိုလျှော့ချရန်နှင့်ဖွံ့ဖြိုးတိုးတက်မှုထိရောက်မှုကိုတိုးတက်စေသည်။

  • သို့သော်မှတ်ချက်။ ။ Class Attribute များနှင့်ဒေတာဘေ့စ်လယ်ကွင်းများသည်ကိုက်ညီမှုမရှိပါကသတိထားပါ။