လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> mysqli_result :: fetch_column ကိုသုံးသောအခါထပ်တူအချက်အလက်များကိုမည်သို့ရှောင်ရှားရမည်နည်း

mysqli_result :: fetch_column ကိုသုံးသောအခါထပ်တူအချက်အလက်များကိုမည်သို့ရှောင်ရှားရမည်နည်း

gitbox 2025-05-29

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI extension ကိုအသုံးပြုရန်အလွန်များသောအားဖြင့်ဖြစ်သည်။ MySQLi_Result :: Fetter_column function သည်စုံစမ်းမှုရလဒ်များမှတစ်ခုတည်းသောကော်လံအချက်အလက်များကိုထုတ်ယူရန်အတွက်ရိုးရှင်းသောနည်းလမ်းဖြစ်သည်, သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များစွာသည်ဒေတာပုံတူပွားများပြ the နာကိုကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်ဤဖြစ်ရပ်အားဤဖြစ်ရပ်အားဤဖြစ်စဉ်ကိုတုန့်ပြန်ပြီးဤပြ problem နာကိုရှောင်ရှားရန်ထိရောက်သောဖြေရှင်းနည်းများနှင့်နမူနာကုဒ်များကိုဖြည့်ဆည်းပေးလိမ့်မည်။


1 ။ မိတ္တူပွားရန်အကြောင်းပြချက်

  1. ဒေတာဘေ့စ်မေးမြန်းချက်ထုတ်ပြန်ချက်များ၏မလျော်ကန်သောဒီဇိုင်း <br> အကြိမ်ပေါင်းများစွာ, မိတ္တူပွား၏ root root သည် SQL query ကိုယ်နှိုက်သည် SQL query ကိုယ်နှိုက်ဖြစ်သည်

  2. ဒေတာထုတ်ယူခြင်းနည်းလမ်းအမှား <br> <br> Fetch_Column ကို အသုံးပြုသောအခါကွင်းဆက်တွင်ဒေတာကိုမဆင်ခြင်ဘဲမထင်မှတ်ပါကထပ်ခါတလဲလဲထုတ်လုပ်မှုကိုဖြစ်ပေါ်စေနိုင်သည်။

  3. ဒေတာ cache သို့မဟုတ် loop ယုတ္တိဗေဒချို့ယွင်းချက် <br> <br> အကယ်. ဒေတာများကိုခင်းကျင်းတွင်သိမ်းဆည်းထားပြီးနောက်မှန်ကန်စွာမစားပါက Loop traversal ၏ယုတ္တိဗေဒဆိုင်ရာပြ a နာတစ်ခုဖြစ်လာပါက၎င်းသည်ပုံတူပွားခြင်းကိုဖြစ်ပေါ်စေလိမ့်မည်။


2 ။ မိတ္တူကူးအချက်အလက်များကိုမည်သို့ရှောင်ရှားရမည်နည်း

1 ။ SQL query ကို optimize လုပ်ပါ

တိုက်ရိုက်နှင့်ထိရောက်သောနည်းလမ်းမှာ SQL ထုတ်ပြန်ချက်များတွင် DISTUCOPLINE ဖြစ်သည်။

 $sql = "SELECT DISTINCT column_name FROM table_name WHERE conditions";
$result = $mysqli->query($sql);

ဤအချက်သည်အချက်အလက်များ၏အပိုင်းအစများသည်ပြန်လည်ရရှိလာသောရလဒ်တွင်ထူးခြားသည်။

2 ။ Mysqli_result :: fetch_colum ကို ကျိုးကြောင်းဆီလျော်စွာသုံးပါ

Fetter_column သည် လက်ရှိအတန်းတွင်အချက်အလက်များ၏ကော်လံကိုသာထုတ်ယူသည်။ အကယ်. ၎င်းကို loop ဟုခေါ်ပါကအချက်အလက်များကိုအတန်းဖြင့်ရနိုင်သော်လည်းသင်အာရုံစိုက်ရန်လိုအပ်သည်။

  • မိတ္တူပွားများမိတ္တူပွားများမိတ္တူပွားထုတ်လုပ်မှုကိုသေချာအောင်လုပ်ပါ။

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

3 ။ PHP အဆင့်တွင် deeduplication

အကယ်. ဒေတာဘေ့စ်အလွှာသည်ထူးခြားမှုကိုမအောင်မြင်နိုင်ပါက PHP layer သည် array deveduplication ကိုသုံးနိုင်သည်။

 $data = [];
while ($value = $result->fetch_column()) {
    $data[] = $value;
}
$data = array_unique($data);  // ထပ်တူတန်ဖိုးများကိုဖယ်ရှားပါ

3 ။ နမူနာကုဒ်

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

 <?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");

if ($mysqli->connect_errno) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// အသုံးပြုDISTINCTမိတ္တူပွားများကိုရှောင်ပါ
$sql = "SELECT DISTINCT user_email FROM users WHERE status = 'active'";
$result = $mysqli->query($sql);

if ($result) {
    $emails = [];
    while ($email = $result->fetch_column()) {
        $emails[] = $email;
    }

    // နောက်တဖန်အလေးချိန်ကိုဖယ်ရှားရန်သေချာပါစေ(တားဆီးSQLအဆိုပါကြေညာချက်အလုပ်မလုပ်ပါဘူး)
    $emails = array_unique($emails);

    foreach ($emails as $email) {
        echo $email . "<br>";
    }

    $result->free();
} else {
    echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
}

$mysqli->close();
?>

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

  • SQL ဒီဇိုင်းရေးဆွဲသည့်အခါ deperplication နှင့် ကွဲပြားခြင်း ကိုပိုမိုနှစ်သက်သည်။

  • FETT_CONGONCON သည် တစ်ခုတည်းသောကော်လံအချက်အလက်များကိုအတန်းဖြင့်ထုတ်ယူပြီးကျိုးကြောင်းဆီလျော်စွာခေါ်ဆိုသည်။

  • PHP သည် SARAY_UNRIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIKIQUIE ကိုအသုံးပြုသည်။

  • မရည်ရွယ်ဘဲထပ်ခါထပ်ခါထပ်တူတန်းများကိုရှောင်ရှားရန်ဆက်စပ်သောစုံစမ်းမှုနှင့်အချက်အလက်ဖွဲ့စည်းပုံကိုစစ်ဆေးပါ။

အထက်ပါနည်းစနစ်များမှတဆင့် mysqli_result :: fetch_column ကို အသုံးပြုသောအခါထပ်ဆင့်အချက်အလက်ပြ problem နာကိုအခြေခံအားဖြင့်ဖယ်ရှားပစ်နိုင်ပြီး code အားကြံ့ခိုင်ခြင်းနှင့်အချက်အလက်တိကျမှန်ကန်မှုကိုတိုးတက်စေနိုင်သည်။