လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Next_result ကိုအသုံးပြုပြီး Safe Mode ရေးသားခြင်းဥပမာများဥပမာ။

Next_result ကိုအသုံးပြုပြီး Safe Mode ရေးသားခြင်းဥပမာများဥပမာ။

gitbox 2025-05-02

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP အတွက် PHP ကိုအသုံးပြုသောအခါ, နောက် function သည်အထူးသဖြင့်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများသို့မဟုတ်အသုတ်လုပ်ထုံးလုပ်နည်းများကိုကွပ်မျက်ခံရသည့်အခါရလဒ် Multi-rights function ကိုအသုံးပြုလေ့ရှိသည်။ သို့သော်လုံခြုံစိတ်ချရသောစနစ်ကိုပြောင်းလဲခြင်းသို့မဟုတ်ဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုလုံခြုံရေးအတွက်ပိုမိုမြင့်မားသောလိုအပ်ချက်များရှိပါက၎င်းကိုပိုမိုဂရုတစိုက်အသုံးပြုသင့်သည်။

ဤဆောင်းပါးသည်လက်တွေ့ မှစတင်. နောက်လာမည့် _result () ၏ဘုံအသုံးပြုမှုကိုပြုလုပ်သွားမည်ဖြစ်ပြီး,

အဘယ်ကြောင့် Next_result () အသုံးပြု?

Next_result () သည် MySQLI extension တွင်လက်ရှိရလဒ်ကိုကျော်လွန်ပြီးနောက်ရလဒ်ကိုရွေ့လျားစေသည့် MySQLI extension တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဥပမာအမျိုးမျိုးပါ 0 င်သည့်စုံစမ်းမှုတစ်ခုကိုလုပ်ဆောင်သည့်အခါဥပမာ -

 CALL getUserData(); SELECT NOW();

နောက်ရလဒ်ကိုရယူရန်ပထမရလဒ်ကိုပြင်ဆင်ပြီးနောက်သင် Next_result () ကို ခေါ်ရန်လိုအပ်သည်။

အခြေခံအသုံးပြုမှု

 $mysqli = new mysqli("localhost", "username", "password", "database");

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

$query = "CALL multi_result_procedure()";
if ($mysqli->multi_query($query)) {
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free();
        }
    } while ($mysqli->more_results() && $mysqli->next_result());
}

အထက်ပါကုဒ်သည်ပုံမှန်အားဖြင့်ရလဒ်မျိုးစုံကိုကိုင်တွယ်နိုင်သည်,

"Safe Mode" တွင်ဘာကိုဂရုပြုသင့်သနည်း။

"Safe Mode" သည်သင်၏လျှောက်လွှာအလွှာကိုယ်တိုင်ကအကောင်အထည်ဖော်နိုင်သည့်လုံခြုံရေးစနစ်တစ်ခုသို့မဟုတ်လည်ပတ်မှုဝန်းကျင်ရှိအချို့သောလုပ်ဆောင်ချက်များနှင့်အပြုအမူများကိုကန့်သတ်နိုင်သည်။ မည်သည့်နေရာ၌ရှိပါစေ, အောက်ပါအချက်များမှာအာရုံစိုက်သင့်သည်။

1 ။ SQL ကို Dynamic Splicing တားမြစ်သည်

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

 $stmt = $mysqli->prepare("CALL getUserData(?)");
$userId = 5;
$stmt->bind_param("i", $userId);
$stmt->execute();

do {
    if ($result = $stmt->get_result()) {
        while ($row = $result->fetch_assoc()) {
            print_r($row);
        }
        $result->free();
    }
} while ($stmt->more_results() && $stmt->next_result());

2 ။ ရလဒ်အစုံအရေအတွက်အပေါ်ကန့်သတ်ထား

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

 $maxResults = 5;
$counter = 0;

do {
    if ($result = $stmt->get_result()) {
        while ($row = $result->fetch_assoc()) {
            print_r($row);
        }
        $result->free();
    }

    $counter++;
    if ($counter >= $maxResults) {
        error_log("ရလဒ်အစုသည်အပြောင်းအလဲများ၏အများဆုံးအရေအတွက်ထက်ကျော်လွန်,အတင်းအကျပ်ဆိုင်းငံ့");
        break;
    }
} while ($stmt->more_results() && $stmt->next_result());

3 ။ အချိန်ကုန်ခြင်းနှင့်အမှားမှတ်တမ်းထားပါ

connection timeout မှတဆင့် MySQLI_OPTOOTS မှတဆင့် MySQLI_OPTOOTS မှတစ်ဆင့်မှတ်တမ်းအမှားမှတ်တမ်းများကိုပိတ်ထားပါ။

 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli();
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
$mysqli->real_connect("localhost", "username", "password", "database");

try {
    // Execution ကြေငြာချက်ယုတ္တိဗေဒ
} catch (mysqli_sql_exception $e) {
    error_log("ဒေတာဘေ့စ်အမှား: " . $e->getMessage());
}

4 ။ နိမ့်ဆုံးခွင့်ပြုချက်များ၏နိယာမ

Gitbox.net မှပေးသောဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်သို့မဟုတ်ဝေးလံခေါင်သီသောဒေတာဘေ့စ်များကိုချိတ်ဆက်သောအခါ, အသုံးပြုသောဒေတာဘေ့စ်အကောင့်သည်ပစ်မှတ်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းအတိုင်းအနည်းဆုံးခွင့်ပြုချက်ရရန်သင်သေချာသင့်သည်။ ဥပမာအားဖြင့်:

 GRANT EXECUTE ON PROCEDURE getUserData TO 'app_user'@'gitbox.net';

အကျဉ်းချုပ်

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

  • Preprocessing ထုတ်ပြန်ချက်များကိုသုံးပါ။

  • ရလဒ်အစုံအရေအတွက်ကိုထိန်းချုပ်;

  • ခြွင်းချက်နှင့်အချိန်ကုန်ခြင်းပြုပြင်ခြင်းများကိုထည့်ပါ။

  • နိမ့်ဆုံးခွင့်ပြုချက်အရသင်၏အကောင့်ကိုသင်ပြင်ဆင်ပါ။

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