လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: Get_warenings အမှား - ကြေညာချက်ကိုကွပ်မျက်ခံရခြင်းသို့မဟုတ်ကြေငြာချက်ကိုပိတ်ထားသည်။ ဘယ်လိုဖြေရှင်းမလဲ

MySQLI_STMT :: Get_warenings အမှား - ကြေညာချက်ကိုကွပ်မျက်ခံရခြင်းသို့မဟုတ်ကြေငြာချက်ကိုပိတ်ထားသည်။ ဘယ်လိုဖြေရှင်းမလဲ

gitbox 2025-06-17

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI Extension ကိုအသုံးပြုသည့်အခါ MySQLI_STMT :: Get_warenings function သည်လက်ရှိကြေငြာချက်ကိုအကောင်အထည်ဖော်ပြီးနောက်ပြန်လည်ပေးအပ်သောသတိပေးအချက်အလက်များကိုရယူရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ဒေတာဘေ့စ်လုပ်ငန်းများကိုဖျက်သိမ်းသောအခါ SQL ကြေငြာချက်ကိုမှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းခြင်းရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။ သို့သော်အချို့ဖြစ်ရပ်များတွင် developer များသည်အောက်ပါအမှားကိုကြုံတွေ့ရနိုင်သည်။

 အဆိုပါကြေညာချက်ကိုကွပ်မျက်ခံရသို့မဟုတ်ကြေညာချက်ပိတ်ထားသည်မဟုတ်

ဆိုလိုသည်မှာသင်သည် Get_warenings ကိုထုတ်ပြန်ကြေငြာချက်တစ်ခုတွင် Get_warenings ကို ခေါ်ယူရန်ကြိုးစားသည်, ထို့နောက်ကျွန်ုပ်တို့သည်ဤအမှား၏အကြောင်းရင်းများကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။

အမှား၏အကြောင်းရင်း

  1. ကွပ်မျက်ခံရသည့်ကြေညာချက် - ယခင် SQL ကြေငြာချက်ကို Get_warennings ဟုခေါ်သည့်အခါဤအမှားဖြစ်ပေါ်လာလိမ့်မည်။ ဘာဖြစ်လို့လဲဆိုတော့ Get_warenings ဟာ SQL ထုတ်ပြန်ချက်တွေရဲ့ကွပ်မျက်မှုရလဒ်တွေကိုအားကိုးဖို့လိုတယ်။ အကယ်. လုပ်ဆောင်မှုမပြုလုပ်ပါကသို့မဟုတ်ကွပ်မျက်စဉ်အတွင်းအမှားတစ်ခုဖြစ်ပါကဤအချိန်တွင်သတိပေးစာမရရှိနိုင်ပါ။

  2. ကြေညာချက်ကိုပိတ်ထားသည် - MySQLI တွင်ဖော်ပြချက်သည် Object ( MySQLI_STMT ) တွင် Execution Object သည် Oblite ကိုပိတ်ရန်နှင့်မတူသည်အထိလုပ်ဆောင်သည်။ အကယ်. သင်သည် Ent_warennings ကိုထုတ်ဖော်ပြောကြားပြီးနောက် Get_warennings ကို ခေါ်ရန်ကြိုးစားပါကဤအမှားကိုလည်းပြုလုပ်နိုင်သည်။

  3. ဆက်သွယ်မှုပြ problems နာများ - အချို့သောကိစ္စရပ်များတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ထားပါကသို့မဟုတ်ဆက်သွယ်မှုပြတ်တောက်သွားပါက၎င်းသည်သတိပေးသတင်းအချက်အလက်မရရှိနိုင်မှုကိုရရှိနိုင်မည်ဖြစ်သည်။

အဖေြ

ဤပြ issue နာကိုဖြေရှင်းရန်ကုဒ်ကိုစစ်ဆေးရန်နှင့်ပြင်ဆင်ရန်အောက်ပါအဆင့်များကိုသင်လိုက်နာနိုင်သည်။

1 ။ SQL ကြေငြာချက်ကိုသေချာအောင်လုပ်ပါ

ပထမ ဦး စွာ SQL ကြေငြာချက်ကို Get_warenings မခေါ်မီအောင်မြင်စွာကွပ်မျက်ခံရကြောင်းသေချာပါစေ။ အကယ်. ကြေငြာချက်မရှိပါက Get_warenings သည် မည်သည့်သတိပေးစာကိုမဆိုပြန်လည်မလာပါက။

 $stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $userId);
$stmt->execute(); // ကြေညာချက်ကွပ်မျက်ခံရကြောင်းသေချာပါစေ

// ကြေညာချက်ကိုအောင်မြင်စွာကွပ်မျက်ခံရပြီးနောက်မှသာ,ခေါ်ခြင်း get_warnings
if ($stmt->execute()) {
    $warnings = $stmt->get_warnings();
    while ($warning = $warnings->fetch_assoc()) {
        echo "Warning: " . $warning['Message'] . "\n";
    }
} else {
    echo "Error executing statement.\n";
}

2 ။ ကြေညာချက်ကိုပိတ်ထားမထားဘူးသေချာပါစေ

Get_warenning ကို မခေါ်မီ, အရာဝတ်ထုကိုမပိတ်နိုင်အောင်သေချာအောင်လုပ်ပါ။ အကယ်. ဖော်ပြချက်အရာဝတ်ထုကိုပိတ်ထားပါကသတိပေးစာကိုမရရှိနိုင်ပါ။ ကုဒ်ကိုယုတ္တိဗေဒကိုညှိခြင်းအားဖြင့်ကြေညာချက်ကိုမပိတ်မီသက်ဆိုင်ရာစစ်ဆင်ရေးအားလုံးပြီးစီးခဲ့သည်။

 $stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$stmt->bind_param("si", $name, $age);
$stmt->execute();

// တယ်လီဖုန်းဆက်ခြင်း get_warnings ဉီးစွာ,ကြေညာချက်ကိုမပိတ်ထားပါစေ
$warnings = $stmt->get_warnings();
while ($warning = $warnings->fetch_assoc()) {
    echo "Warning: " . $warning['Message'] . "\n";
}

$stmt->close();  // အားလုံးစစ်ဆင်ရေးပြီးစီးခဲ့သည်,နောက်တဖန်ကြေညာချက်အရာဝတ်ထုကိုပိတ်ပါ

3 ။ အမှားကိုင်တွယ်

SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သောအခါအမှားအယွင်းများကိုကြေငြာချက်မအောင်မြင်သည့်အခါအမှားအယွင်းများကိုဖမ်းယူနိုင်အောင်ပြုလုပ်နိုင်ရန်အတွက်အမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုထည့်ရန်အကောင်းဆုံးဖြစ်သည်။ ဥပမာအားဖြင့် MySQLI_ERRORR သို့မဟုတ် MYSQLI_ERRNO ကို ကွပ်မျက်ခြင်းသည်အောင်မြင်မှုရှိမရှိစစ်ဆေးရန်အသုံးပြုနိုင်သည်။

 $stmt = $mysqli->prepare("UPDATE users SET age = ? WHERE id = ?");
$stmt->bind_param("ii", $age, $userId);

if (!$stmt->execute()) {
    echo "Error: " . $stmt->error;
} else {
    // ကြေညာချက်အောင်မြင်စွာကွပ်မျက်ခံရပြီးနောက်,အခြားသတိပေးချက်ရယူပါ
    $warnings = $stmt->get_warnings();
    while ($warning = $warnings->fetch_assoc()) {
        echo "Warning: " . $warning['Message'] . "\n";
    }
}

4 ။ ဆက်သွယ်မှုအခြေအနေကိုစစ်ဆေးပါ

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

 if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

$stmt = $mysqli->prepare("SELECT * FROM users");
$stmt->execute();
$warnings = $stmt->get_warnings();
while ($warning = $warnings->fetch_assoc()) {
    echo "Warning: " . $warning['Message'] . "\n";
}

အကျဉ်းချုပ်

အကယ်. MySQLI_STMT :: Get_warening သည် "မသက်ဆိုင်သောကြေညာချက်သို့မဟုတ်ကြေငြာချက်" အမှားများကိုကွပ်မျက်စဉ်ကွပ်မျက်ခံရစဉ်က "မသက်ဆိုင်သောကြေညာချက်သို့မဟုတ်ကြေငြာချက်" အမှားတစ်ခုနှင့်တွေ့ဆုံပါက SQL ကြေငြာချက်သည်ဤလုပ်ဆောင်မှုကိုခေါ်ဆိုခြင်းမပြုမီအောင်မြင်စွာကွပ်မျက်ခံရခြင်းမဟုတ်ပါ။ ဤအမှားကိုရှောင်ရှားရန်သင်သေချာစေရန်လိုအပ်သည်။

  1. SQL ကြေငြာချက်ကို Get_warenings မခေါ်မီအောင်မြင်စွာကွပ်မျက်ခံရသည်။

  2. Get_warenings ကို ခေါ်သည့်အခါအရာဝတ်ထုသည်ပွင့်လင်းနေဆဲ,

  3. ကြေငြာချက်နှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်များကိုကြေငြာချက်ကိုမပိတ်မီမရှိတော့ကြောင်းသေချာပါစေ။

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