PHP တွင်ဒေတာဘေ့စ်မေးမြန်းချက်များထံမှအချက်အလက်များအတွက်အချက်အလက်များကိုရယူရန် FECT_OBJOCT_OBJOCTION ကို အသုံးပြုလေ့ရှိသည်။ fetch_object_bject သည် များသောအားဖြင့် accapiative array မဟုတ်ပါ။ သို့သော်တစ်ခါတစ်ရံတွင်ပြန်လာသောအရာဝတ်ထု၏ပိုင်ဆိုင်မှုတန်ဖိုးသည်မမှန်ကန်ပါသို့မဟုတ်မျှော်လင့်ထားသည့်တန်ဖိုးကိုမရရှိနိုင်ကြောင်းတွေ့ရှိရသည်။ ဒီတော့ဒီပြ problem နာရဲ့အဘယ်အကြောင်းရင်းဖြစ်နိုင်သနည်း။ ယနေ့ဘုံပြ problems နာများနှင့်ဖြေရှင်းနည်းများအကြောင်းပြောဆိုကြပါစို့။
အသုံးအများဆုံးအကြောင်းပြချက်မှာ SQL Query တွင်ပြန်လာသောနယ်ပယ်များသည်အရာဝတ်ထု၏ attribute အမည်နှင့်မကိုက်ညီသောကြောင့်ဖြစ်သည်။ FETCE_OBJEST သည် အရာဝတ်ထု၏ပိုင်ဆိုင်မှုအမည်ကိုဒေတာဘေ့စ်တွင်ဒေတာဘေ့စ်တွင်ဖိုင်အမည်ရှိရှာဖွေမှုကိုရှာဖွေသည်။
SQL query မှပြန်လာသောကွင်းဆက်အမည်သည်အရာဝတ်ထု၏ attribute နာအမည်နှင့်ကိုက်ညီကြောင်းသေချာပါစေ။
အကယ်. Field Name သည် underscore ကိုအသုံးပြုသည် (ဥပမာ, user_name ) ကို အသုံးပြုပါက,
$sql = "SELECT user_name AS userName FROM users";
ဤနည်းအားဖြင့် Fetch_Object မှပြန်လာသောအရာဝတ်ထုသည် Username attribute ရှိလိမ့်မည်။
အကယ်. သင်သည် SQL Queries ရှိစားပွဲတင်နေရာများအတွက် Alias ကိုအသုံးပြုပါက PHP ရှိ Object attribute အမည်ကိုမကိုက်ညီပါကပြ a နာတစ်ခုဖြစ်လိမ့်မည်။ ဥပမာအားဖြင့်, query အတွက် username isername asername အဖြစ်ရွေးပါ ဆိုပါက, စုံစမ်းမှုရလဒ်ပါ attribute သည် အသုံးပြုသူအမည် မဟုတ်ပါ ။
alias ကိုသုံးသောအခါသင်၏ PHP code တွင်အိမ်ခြံမြေ 0 င်ပိုင်ခွင့်အမည်ကိုသင်၏ SQL query တွင် alias နှင့်ကိုက်ညီကြောင်းသေချာပါစေ။
တစ်ခါတစ်ရံအချို့သောလယ်ကွင်းများသည်တန်ဖိုးများအလွတ်ရှိသည်သို့မဟုတ်မရနိုင်ပါ။ များသောအားဖြင့် SQL Query သည်ဤနယ်ပယ်များကိုမှန်ကန်စွာမပြန်ပါ။ ဥပမာအားဖြင့်, အကယ်. စုံစမ်းမှုအခြေအနေများမကိုက်ညီပါကသို့မဟုတ် ပူးပေါင်းပါဝင် ပါကအချို့သောလယ်ကွင်းများကိုလွဲချော်သည်။ ၎င်းသည်မမှန်ကန်သောတန်ဖိုးများကိုဖြစ်ပေါ်စေနိုင်သည်။
SQL ၏မေးမြန်းမှုတွင်လိုအပ်သောလယ်ကွင်းများအားလုံးကိုပြန်လည်ပေးပို့ကြောင်းသေချာပါစေ။
လိုအပ်သောမှတ်တမ်းများကိုမဆုံးရှုံးစေရန် လက်ဝဲ join သို့မဟုတ် မှန်ကန်သော join ကို သုံးပါ။
ဒေတာဘေ့ စ ်ရှိတန်ဖိုးတစ်ခု၏တန်ဖိုးအမျိုးအစားသည်မျှော်လင့်ထားသည့်အမျိုးအစားနှင့်မကိုက်ညီပါက, ဥပမာအားဖြင့်, ဒေတာဘေ့စ်ရှိဂဏန်းအမျိုးအစားတစ်ခုမှာ string type တစ်ခုသို့ပြောင်းလဲနိုင်သည်သို့မဟုတ်ရက်စွဲအမျိုးအစားကို string တစ်ခုအဖြစ်မှားယွင်းစွာလုပ်ဆောင်သည်။
Field Value ကိုမျှော်လင့်ထားသည့်အမျိုးအစားသို့ပြောင်းရန်အမျိုးအစားပြောင်းလဲခြင်းသို့မဟုတ်သွန်းကိုသုံးပါ။
$user = $stmt->fetch_object();
$age = (int) $user->age; // integer မှသွန်း
အကယ်. သင်က query ကို execute လုပ်ရန် PDO ကိုအသုံးပြုပါက PDO :: FETT_OBJ ကို မှန်ကန်စွာ မသတ်မှတ်ပါ။ အရာဝတ်ထုကိုပြန်ရောက်စေရန်သေချာစေရန်အတွက် PDO Query ကို PDO :: Fetter_obj နှင့် parameter သည်ကွပ်မျက်ရန်သေချာစေရမည်။
စုံစမ်းမှုတစ်ခုလုပ်ဆောင်ပြီးနောက် Fetch mode ကိုမှန်ကန်စွာသတ်မှတ်ထားပါ။
$stmt = $pdo->query("SELECT * FROM users");
$user = $stmt->fetch(PDO::FETCH_OBJ);
တခါတရံတွင်အချို့သော URL အချို့ကိုဒေတာဘေ့စ်စုံစမ်းမှုတွင် (သို့) ပြင်ပအရင်းအမြစ်များ၏နယ်ပယ်များရရှိရန်လိုအပ်သည်။ URL ကိုစူးစိုက်သောအခါ URL ကိုမှန်ကန်စွာမအောင်မြင်ပါကအထူးသဖြင့်ဒိုမိန်းအမည်များပါ 0 င်သည့်အခါ၎င်းသည်အရာဝတ်ထု၏ပိုင်ဆိုင်မှုတန်ဖိုးကိုသက်ရောက်စေနိုင်သည်။
ဥပမာအားဖြင့်, URL ကို splicing url ကို splicting သောအခါ (http: // သို့မဟုတ် https: //) သည် url ကိုခွဲခြားသည့်အခါမှားယွင်းသောဒိုမိန်းအမည်ကိုမတော်တဆအသုံးပြုခြင်း (http: // သို့မဟုတ် https: //) သည်မျှော်လင့်ထားသည့်အတိုင်းမဖြစ်စေရန်ဖြစ်သည်။
URL splicing အတွက်စည်းလုံးသောဒိုမိန်းအမည်ကိုသုံးပါ။ Domain Name သည် URL တွင်ပါ 0 င်ပါက Domain Name သည်တစ်စိတ်တစ်ပိုင်းအနေဖြင့်တစ်စိတ်တစ်ပိုင်းအစဉ်အမြဲ တသမတ်တည်း ဖြစ်ကြောင်းသေချာပါစေ။
URLs များကို splicing လုပ်သည့်အခါဆွေမျိုးလမ်းကြောင်းများကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ရှားရန်အပြည့်အဝ URL လမ်းကြောင်းကိုသုံးပါ။
$url = "http://m66.net/path/to/resource";
အကယ်. ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်မတည်မငြိမ်ဖြစ်လျှင်သို့မဟုတ်စုံစမ်းမှုလုပ်ငန်းစဉ်အတွင်းအမှားတစ်ခုဖြစ်ပါက,
ကွန်ယက်နှောင့်နှေးမှုသို့မဟုတ်ဒေတာဘေ့စ်အချိန်ကုန်ရှိပါသလားဒေတာဘေ့စ် connection သည်ပုံမှန်ဖြစ်သည်ကိုစစ်ဆေးပါ။
ချွင်းချက်များကိုဖမ်းရန်အမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုကိုသုံးပါ။
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
} catch (PDOException $e) {
echo 'ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $e->getMessage();
}