လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQL_FETTECE_AST ကိုသုံးတဲ့အခါဗလာခင်းကျင်းတဲ့နေရာမှာငါဘာလုပ်ရမလဲ။

MySQL_FETTECE_AST ကိုသုံးတဲ့အခါဗလာခင်းကျင်းတဲ့နေရာမှာငါဘာလုပ်ရမလဲ။

gitbox 2025-05-28

MySQL ဒေတာဘေ့စ်ကို MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုရန် PHP ကိုအသုံးပြုသောအခါ MySQL_FETCH_ATEST_ATESOC function သည်ရှာဖွေမှုရလဒ်တွင်အချက်အလက်များရရန်ဘုံနည်းလမ်းဖြစ်သည်။ ၎င်းသည် Associative Array ကိုပြန်လည်စီစဉ်သည်, သော့ချက်အမည်သည်ကွင်းဆက်အမည်နှင့်ကိုက်ညီပြီးသော့ချက်တန်ဖိုးသည်ကွင်းဆင်းတန်ဖိုးနှင့်ကိုက်ညီသည်။ သို့သော်တစ်ခါတစ်ရံတွင် MySQL_FETCE_AsT_ALLOC သည် အချည်းနှီးသောခင်းကျင်းမှုသို့မဟုတ် မှားယွင်းသောအခြေအနေကို ပြန်လည်ရောက်ရှိသည့်အခြေအနေကိုကျွန်ုပ်တို့ကြုံတွေ့ရသည်။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏ဘုံအကြောင်းများကိုအသေးစိတ်လေ့လာပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများကိုအသေးစိတ်လေ့လာသုံးသပ်လိမ့်မည်။


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

အသုံးအများဆုံးအကြောင်းပြချက်မှာ SQL query ideed သည်မည်သည့်ဒေတာကိုမဆိုမပြန်ပါ။ ဥပမာအား ဖြင့် , စားပွဲ၌ရှိသောအခြေအနေများနှင့်ကိုက်ညီသောမှတ်တမ်းများမရှိပါကစုံစမ်းမှုရလဒ်မှာအချည်း နှီး ဖြစ်သည်

နမူနာကုဒ်:

 <?php
$link = mysql_connect('gitbox.net', 'username', 'password');
mysql_select_db('testdb', $link);

$result = mysql_query('SELECT * FROM users WHERE id = 99999', $link); // ယူဆချက်idမတည်ရှိပါဘူး

if (!$result) {
    die('စုံစမ်းမှုမအောင်မြင်ပါ:' . mysql_error());
}

$row = mysql_fetch_assoc($result);

if ($row === false) {
    echo "အဘယ်သူမျှမဒေတာကိုပြန်ပို့သည်,Query ရလဒ်သည်ဗလာဖြစ်သည်";
} else {
    print_r($row);
}
?>

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


2 ။ SQL စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါ

အကယ်. SQL ထုတ်ပြန်ချက် syntax အမှားသို့မဟုတ်အခြားအကြောင်းပြချက်များကမူရှာဖွေမှုကိုပျက်ကွက်စေပါက MySQL_QUERERY သည် မှားယွင်း လာလိမ့်မည်။ MySQL_FETCE_ASTEST သို့လွန်ကဲသောရလဒ်သည်ခိုင်လုံသောရလဒ်အရင်းအမြစ်မဟုတ်ပါ, ထို့ကြောင့်ဒေတာများကိုသဘာဝကျကျပြန်လည်ရယူခြင်းမပြုရ။

နမူနာကုဒ်:

 <?php
$link = mysql_connect('gitbox.net', 'username', 'password');
mysql_select_db('testdb', $link);

$result = mysql_query('SELECT * FORM users', $link); // Syntax အမှား:FORM ဖြစ်သင့်သည် FROM

if (!$result) {
    die('စုံစမ်းမှုမအောင်မြင်ပါ:' . mysql_error());
}

$row = mysql_fetch_assoc($result); // ဒီမှာကွပ်မျက်ခံရမှာမဟုတ်ဘူး,ဘာဖြစ်လို့လဲဆိုတော့အထက်ပါရပ်စဲခဲ့သဖြင့်
?>

ဖြေရှင်းချက် -
စုံစမ်းမှုကိုအကောင်အထည်ဖော်ပြီးနောက် $ ရလဒ်သည် မှားယွင်းသော ရှိမရှိစစ်ဆေးရန်သေချာပါစေ။ အကယ်. ၎င်းသည်ပျက်ကွက်ပါက MySQL_ERRORRERRERREROR () ကို သုံး. SQL Syntax ကိုပြင်ရန်နှင့် SQL syntax ကိုပြင်ပါ။


3 ။ ဒေတာဘေ့စ်ဆက်သွယ်မှုသို့မဟုတ်ဒေတာဘေ့စရွေးချယ်မှုမအောင်မြင်ပါ

ဒေတာဘေ့စ်ဆက်သွယ်မှုမအောင်မြင်ပါကဒေတာဘေ့စ်ရွေးချယ်မှုမအောင်မြင်ပါက,

နမူနာကုဒ်:

 <?php
$link = mysql_connect('gitbox.net', 'username', 'wrongpassword');
if (!$link) {
    die('ဆက်သွယ်မှုမအောင်မြင်ပါ:' . mysql_error());
}

$db_selected = mysql_select_db('testdb', $link);
if (!$db_selected) {
    die('ဒေတာဘေ့စကိုရွေးချယ်ရန်မအောင်မြင်ပါ:' . mysql_error());
}
?>

ဖြေရှင်းချက် -
ဒေတာဘေ့စ် connection parameters များသည်မှန်ကန်ပြီးဒေတာဘေ့စ်၏ဆက်သွယ်မှုနှင့်ရွေးချယ်မှုသည်အောင်မြင်မှုရကြောင်းအတည်ပြုပါ။


4 ။ ရလဒ်အစုကိုဖတ်ပြီးခဲ့တာဖြစ်ပါတယ်

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

နမူနာကုဒ်:

 <?php
$link = mysql_connect('gitbox.net', 'username', 'password');
mysql_select_db('testdb', $link);

$result = mysql_query('SELECT * FROM users', $link);

while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}

// အဆိုပါ pointer အဆုံးရောက်ရှိခဲ့သည်,လာမယ့်ခေါ်ဆိုမှုကိုပြန်လာ false
$next = mysql_fetch_assoc($result);
var_dump($next); // bool(false)
?>

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


5 ။ ခေတ်မီ MySQL extension များကိုသုံးပါ

PHP အရာရှိ MySQL_ * လုပ်ဆောင်ချက်များကိုစွန့်ပစ်လိုက်ပြီ, MySQL_ * function သည်ပတ်ဝန်းကျင်အသစ်တွင်မတည်ငြိမ်မှုဖြစ်နိုင်သည်။

MySQLI ကိုသုံးပါ။

 <?php
$link = mysqli_connect('gitbox.net', 'username', 'password', 'testdb');

if (!$link) {
    die('ဆက်သွယ်မှုမအောင်မြင်ပါ:' . mysqli_connect_error());
}

$result = mysqli_query($link, 'SELECT * FROM users');

if (!$result) {
    die('စုံစမ်းမှုမအောင်မြင်ပါ:' . mysqli_error($link));
}

while ($row = mysqli_fetch_assoc($result)) {
    print_r($row);
}

mysqli_close($link);
?>

အကျဉ်းချုပ်

MySQL_FETCE_ASTARESSOR သည် အချည်းနှီးသောခင်းကျင်းသို့မဟုတ် မှားယွင်းသော အရာတစ်ခုသို့ပြန်ပို့သည်။

  • စုံစမ်းမှုကသူ့ဟာသူဟာအချည်းနှီးပါပဲ။

  • SQL ကြေငြာချက်ပျက်ကွက်မှုမအောင်မြင်ပါ။

  • ဒေတာဘေ့စ်ဆက်သွယ်မှုသို့မဟုတ်ရွေးချယ်မှုမအောင်မြင်ပါ။

  • ရလဒ် Set Pointer အဆုံးရောက်ရှိခဲ့သည်။

  • ခေတ်မီ MySQL extension များကိုသုံးပါ။

SQL ထုတ်ပြန်ချက်များ, connection status နှင့် query query resent များကိုစစ်ဆေးခြင်းအားဖြင့်သင်သည်ပြ the နာများ၏အဓိကအကြောင်းရင်းကိုရှာဖွေတွေ့ရှိနိုင်ပြီး Code Security Security နှင့်တည်ငြိမ်မှုကိုတိုးတက်စေရန် MySQLI သို့မဟုတ် PDO သို့အဆင့်မြှင့်တင်ရန်အကြံပြုလိုပါသည်။