လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> mysqli_result traverse ဖို့မှန်ကန်သော pose

mysqli_result traverse ဖို့မှန်ကန်သော pose

M66 2025-05-28

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါ MySQLI extension သည် database များကိုချိတ်ဆက်ရန်, ရှာဖွေခြင်းနှင့်လည်ပတ်ရန်အလွန်အဆင်ပြေသောလုပ်ဆောင်မှုများကိုပေးသည်။ MySQLI_RESELT သည် ရှာဖွေမှုကိုအကောင်အထည်ဖော်သည့်အခါပြန်လာသည့်ရလဒ်အနေဖြင့်ပြန်လည်ရောက်ရှိသည့်အရာဝတ်ထုဖြစ်သည်။ ဤဆောင်းပါးသည် MySQLI_RESult function မှရရှိသောရလဒ်များကိုမည်သို့မှန်ကန်စွာဖြတ်သန်းရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ ထို့ကြောင့်မေးမြန်းမှုရလဒ်များကိုထိထိရောက်ရောက်ရရှိနိုင်ပါသည်။

1 ။ ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် MySQLI_Connect () function ကို ဖြတ်. ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်လိုအပ်သည်။ သင့်တွင်အခြေခံ MySQL ဒေတာဘေ့စ်လုပ်ငန်းအတွေ့အကြုံရှိပြီးသားဟုယူဆပါကအောက်ပါသည်ရိုးရှင်းသောဒေတာဘေ့စ်၏ဆက်သွယ်မှုဥပမာတစ်ခုဖြစ်သည်။

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);

// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
?>

2 ။ quent ကို execute

ဒေတာဘေ့စ်ကိုချိတ်ဆက်ပြီးနောက် SQL Query ကို MySQLI_QUERY () မှတဆင့် execute လုပ်နိုင်သည်။ ကျွန်ုပ်တို့သည်ဇယားတစ်ခုအမည်ရှိ အသုံးပြုသူများကို မေးမြန်းပြီးအသုံးပြုသူများအားလုံးနှင့်ပတ်သက်သောသတင်းအချက်အလက်များကိုရယူရန်ဆိုပါစို့။

 $sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);

ဤအချက်မှာ ဒေါ်လာရလဒ်သည် query ၏အချက်အလက်အားလုံးပါ 0 င်သည့် mySQLI_RESult အရာဝတ်ထုတစ်ခုဖြစ်လိမ့်မည်။

3 ။ MySQLI_FETCE_FETCE_AST_APT_AST_APT_ASTE () ကိုသုံးပါ

MySQLI_RESULET မှ ပြန်လာသောရလဒ်ကိုဖြတ်သန်းသွားသောရလဒ်မှာ MySQLI_FETCE_AFT_ATEC () function ကိုသုံးရန်ဖြစ်သည်။ လုပ်ဆောင်ချက်သည် Associative Array ကိုပြန်လည်ရောက်ရှိစေပြီး၎င်းသည်အချက်အလက်များကိုတစ်ပြိုင်နက်ယူပြီးနောက်ဆက်တွဲအချက်အလက်များမရှိတော့သည်အထိ Pointer ကိုနောက်တစ်ခေါက်သို့ပြောင်းသည်။

 if ($result->num_rows > 0) {
    // တစ်ခုချင်းစီကိုအတန်းများအတွက် output ကိုဒေတာ
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 ရလဒ်";
}

ဤဥပမာတွင် mysqli_fetch_fetch_assoc () array ၏သော့သည်ကွင်းဆင်းအမည်ရှိသည့်အမည်နှင့်တန်ဖိုးသည်သက်ဆိုင်ရာလယ်ကွင်း၏တန်ဖိုးဖြစ်သည်။

4 ။ MySQLI_FETCHT_ROW () ရလဒ်များကိုဖြတ်သန်းရန်

MySQLI_FETCE_APT_AST_ASTOUC () အပြင် MySQLI_FETCHT_ROW () ကိုသင်အညွှန်းရေးရာခင်းကျင်းမှုကိုပြန်ပေးရန်အတွက်လည်းသုံးနိုင်သည်။ ဒေတာတစ်ခုစီ၏ကွင်းဆင်းတန်ဖိုးများကို array တွင်သိုလှောင်ထားလိမ့်မည်။ ဤနည်းလမ်းကိုအသုံးပြုသောအခါ, အညွှန်းကိန်းတစ်ခုစီ၏တန်ဖိုးတစ်ခုစီ၏တန်ဖိုးများကိုသင်ရယူရန်လိုအပ်သည်။

 if ($result->num_rows > 0) {
    // တစ်ခုချင်းစီကိုအတန်းများအတွက် output ကိုဒေတာ
    while($row = $result->fetch_row()) {
        echo "id: " . $row[0] . " - Name: " . $row[1] . " - Email: " . $row[2] . "<br>";
    }
} else {
    echo "0 ရလဒ်";
}

ဤနေရာတွင် MySQLI_FETT_ROW () သည်ဂဏန်းအညွှန်းကိန်းခင်းကျင်း, $ အတန်း [0) သည် ID Field နှင့်ကိုက်ညီပြီး $ အတန်း [1] သည် အမည် နှင့် $ 2] သည် အီးမေးလ် ဖြစ်သည်။

5 ။ MySQLI_FETTER_BECT_OBJOST () ကိုသုံးရန် () ရလဒ်များကိုဖြတ်သန်းရန်

အကယ်. သင်သည် query ရလဒ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသောနည်းလမ်းများကိုပိုမိုလေ့ကျင့်လျှင် MySQLI_FETCE_OBGOCTES ကိုသုံးနိုင်သည်။ အရာဝတ်ထုတစ်ခုကိုပြန်ပို့သည်။ တစ်ခုချင်းစီကိုအရာဝတ်ထုဂုဏ်သတ္တိများမှတဆင့်ဝင်ရောက်ကြည့်ရှုနိုင်သည်။

 if ($result->num_rows > 0) {
    // တစ်ခုချင်းစီကိုအတန်းများအတွက် output ကိုဒေတာ
    while($row = $result->fetch_object()) {
        echo "id: " . $row->id . " - Name: " . $row->name . " - Email: " . $row->email . "<br>";
    }
} else {
    echo "0 ရလဒ်";
}

6 ။ ရလဒ်အားလုံးကိုဖြတ်သန်းရန်နောက်ထပ်နည်းလမ်းတစ်ခု

အပြောင်းအလဲလုပ်နေစဉ်အတွင်းခက်ခဲသောအတန်းများပေါ်တွင်သင်ဒေတာများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စွာကိုင်တွယ်ရန်လိုအပ်ပါကရလဒ်အားလုံးပါ 0 င်သော ရှုထောင့် နှစ်လုံးရှိခင်းကျင်းမှုကိုပြန်ပေးနိုင်သည်။

 $allResults = $result->fetch_all(MYSQLI_ASSOC);

foreach ($allResults as $row) {
    echo "id: " . $row["id"] . " - Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}

ဤတွင် Fetch_all (MySQLI_ASSOC) သည် ရလဒ်အားလုံးကို Aceliative Array အဖြစ်ပြန်ပို့လိမ့်မည်။

7 ။ ဆက်သွယ်မှုကိုပိတ်ပါ

စစ်ဆင်ရေးပြီးစီးပြီးနောက်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ရန်သတိရပါ။

 $conn->close();

အကျဉ်းချုပ်

အထက်ပါနည်းလမ်းများမှတစ်ဆင့် MySQLI_RESELT function မှပြန်လာသောရလဒ်အားလုံးကိုကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။ မည်သည့်နည်းလမ်းကိုအသုံးပြုရမည်နည်းသည်သင်၏တစ် ဦး ချင်းလိုအပ်ချက်များနှင့်အချက်အလက်များကိုမည်သို့လုပ်ဆောင်သည်ပေါ်တွင်မူတည်သည်။ အကယ်. သင်သည် Arrays ကိုပေါင်းသင်းခြင်းအားဖြင့်လယ်ကွင်းများရလိုပါက MySQLI_FETCE_ASTCH_ALTOUC () ကိုသုံးနိုင်သည်။ အကယ်. သင်သည် Object-Oriented ကိုပိုနှစ်သက်ပါက MySQLI_FETCE_OBGATE () ကို ရွေးချယ်နိုင်သည်။ အကယ်. သင်သည်တစ်ချိန်တည်းတွင်ဒေတာအတန်းများအားလုံးကိုလုပ်ဆောင်ရန်လိုအပ်ပါက MySQLI_Fetch_All ကို သုံးနိုင်သည်။

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