PHP ၏ PDO (PHP Data Obserts) သည်ဒေတာဘေ့စ်ကိုလည်ပတ်ရန်အတွက်အသုံးပြုသောအခါစုံစမ်းမှုရလဒ်များရရှိရန်နည်းလမ်းများစွာရှိသည်။ PDostatement :: Fetterobjection :: Pdostatement :: Fetchatement :: Fetdo ( PDO :: PDO :: FETTON ) ကို "FETTROW" အကျိုးသက်ရောက်မှုကိုရရှိရန် "Felectrow" အကျိုးသက်ရောက်မှုနှစ်ခုရှိသည်။ သို့သော်များစွာသော developer များစွာသည်မကြာခဏဆိုသလိုကျွန်ုပ်ရွေးချယ်သင့်သည်။ စွမ်းဆောင်ရည်, ဖွဲ့စည်းတည်ဆောက်ပုံနှင့်အဆင်ပြေအောင်၎င်းတို့အကြားကွဲပြားခြားနားမှုများကဘာတွေလဲ။ ဤဆောင်းပါးသည်သင်၏ဆင်တူမှုများနှင့်ကွဲပြားခြားနားမှုများနှင့်သက်ဆိုင်သည့်အခြေအနေများကိုနက်နက်နဲနဲနားလည်ရန်သင့်အားယူပါလိမ့်မည်။
$pdo = new PDO("mysql:host=localhost;dbname=test", "user", "password");
$stmt = $pdo->query("SELECT id, name, email FROM users");
$user = $stmt->fetchObject();
echo $user->name;
ပြန်လာတန်ဖိုး - ပုံမှန်အားဖြင့် stdclass ဥပမာတစ်ခုဖြစ်သည့်အရာဝတ်ထုတစ်ခုကိုပြန်ပို့ပါ။
Access Metus : attribute method ( $ user-> အမည် )
Readability သည် အချက်အလက်များကိုစနစ်တကျဝင်ရောက်ခွင့်ရရန်သင့်လျော်သည်။
fetterrow () နည်းလမ်းမရှိ ()) နည်းလမ်း, fetch (PDO :: FETTUMum) ကို သက်ဆိုင်ရာနည်းလမ်းအဖြစ်မှတ်ယူနိုင်ပါသည်။
$stmt = $pdo->query("SELECT id, name, email FROM users");
$row = $stmt->fetch(PDO::FETCH_NUM);
echo $row[1]; // name
Return Value : Index ခင်းကျင်းမှုကိုပြန်သွားပါ။
Access Method - အညွှန်းကိန်းနည်းလမ်း ( $ အတန်း [0] , $ အတန်း [1] )
ဒေတာဖွဲ့စည်းပုံကိုလူသိများပြီးကော်လံအမိန့်ကိုသတ်မှတ်ထားသည့်အမှုများကိုပိုမိုသင့်တော်သည်။
နှိုင်းယှဉ်ပစ္စည်းများ | Fetchobject () | Fetch (PDO :: Fetter_Num) |
---|---|---|
အမျိုးအစားပြန်လာ | အရာဝတ်ထု (ပုံမှန် stdclass) | Array (အညွှန်းကိန်းခင်း) |
access ကို access ကို | $ obj-> အိမ်ခြံမြေ | $ အတန်း [0] |
မီးပေးခြင်း | Class Name ကိုကူးယူနိုင်ပြီး Class attribute များသည်အလိုအလျောက်ဖြည့်နိုင်သည် | အလိုအလျောက်အတန်းအစားကိုမြေပုံမရနိုင်ပါ |
ပြပဲှ | အနည်းငယ်နှေးကွေးခြင်း (အရာဝတ်ထုတစ်ခုကိုဖန်တီးပါ) | အနည်းငယ်ပိုမြန်သည် (စင်ကြယ်သောခင်းကျင်း) |
ဖတ်ခြင်း | ပိုမိုမြင့်သော | ယေဘုယျအားဖြင့် |
အကြံပြုထားသောအသုံးပြုမှုအခြေအနေများ | Orm, Object-Oriented Development Development, Clear Stretion output | ရိုးရှင်းသောအစီရင်ခံစာထုတ်ယူခြင်း, သုတ်ထုတ်ခြင်း, |
Fetchobject () ကို အသုံးပြုခြင်းသည်အလွန်သင့်လျော်သည်, ရလဒ်များကိုအရာဝတ်ထုများသို့တိုက်ရိုက်မြေပုံဆွဲနိုင်သည်။
class User {
public $id;
public $name;
public $email;
}
$stmt = $pdo->query("SELECT id, name, email FROM users");
$user = $stmt->fetchObject("User");
echo $user->email;
သင့်တော်သောအခြေအနေများ - စီးပွားရေးအဆင့်စီမံကိန်း, DDD ဗိသုကာ,
Fetch (PDO :: FETTUMum) ကို အသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်ကိုတိုးတက်စေပြီးမလိုအပ်သောအရာဝတ်ထုဖန်တီးခြင်းကိုရှောင်ရှားနိုင်ပြီးလယ်ကွင်းအမိန့်ကိုရှင်းလင်းစွာထိန်းချုပ်နိုင်ပါ။
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
echo implode(",", $row) . PHP_EOL;
}
ဖြစ်ရပ်များအတွက်သင့်တော်သည် - အသုတ်အပြောင်းအလဲ, ဒေတာတင်ပို့ CSV, Fast Reporting System
Fetchobjectobject () သည် ပိုမို မြင့်မားသော readability ကိုပေးသော်လည်းမှတ်တမ်းတစ်ခုစီသည်အရာဝတ်ထုတစ်ခုစီကိုထုတ်ပေးသောကြောင့်အချက်အလက်အမြောက်အများကိုထုတ်လုပ်သည့်အခါအနည်းငယ်ပိုဆိုးသည်။ အချက်အလက် 100,000 ကိုဥပမာတစ်ခုအဖြစ်ယူပါ။
Fetchobject () - 1.5 စက္ကန့်ကြာသည်
Fetch (PDO :: Fetter_Num) : 1.1 စက္ကန့်ခန့်ကြာသည်
စမ်းသပ်မှုပတ် 0 န်းကျင်သည်ဒေသခံ MySQL 8.0 နှင့် PHP 8.1 အပေါ်အခြေခံသည်။ Test Code လိပ်စာမှာ https://gitbox.net/test/pdo_benchmark.php
အကယ်. သင်သည် API, Orm သို့မဟုတ်အတန်းစာ encapsulation များကိုအလွှာများကိုတည်ဆောက်နေပါက Fetchobject () ကို အသုံးပြုရန်အကြံပြုပါသည် ။
အကယ်. သင်သည်ယာယီ, ကောင်းမွန်စွာဖွဲ့စည်းထားသောအစီရင်ခံစာများသို့မဟုတ်အသုတ်အချက်အလက်များကိုကိုင်တွယ်ဖြေရှင်းနေပါက Fetch (PDO :: Fetter_Num) ကို ရွေးချယ်ရန် ပို. သင့်လျော်သည်။
စာဖတ်နိုင်မှုကို ဦး စားပေးသည့်အခါအရာဝတ်ထုများကိုရွေးချယ်ပြီးစွမ်းဆောင်ရည်ကိုပိုမိုနှစ်သက်သည့်အခါ array များကိုရွေးချယ်ပါ။
မျက်နှာမ | အကြံပြုနည်းလမ်း |
---|---|
Object-Oriented အပြောင်းအလဲနဲ့ | Fetchobject () |
လျင်မြန်စွာ travers နှင့်ပို့ကုန်သယ်ယူပို့ဆောင်ရေး | Fetch (PDO :: Fetter_Num) |
ရှင်းလင်းသောစနစ်တကျဒေတာ encapsulationulations လိုအပ်သည် | Fetchobject () |
အလွန်အမင်းစွမ်းဆောင်ရည်ကိုလိုက်ရှာခြင်း, | Fetch (PDO :: Fetter_Num) |
အတိုချုပ်ဆိုရလျှင်နှစ် ဦး စလုံးသည်ကိုယ်ပိုင်အားသာချက်များရှိသည်။ ၎င်းတို့ကိုအသုံးချခြင်းအားဖြင့်သာလျှင် PDO ၏အများဆုံးထိရောက်မှုကိုအားဖြည့်ပေးနိုင်သည်။