လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> 【 MySQLI :: After_rows 】အချက်အလက်များကိုထည့်သွင်းပြီးနောက်ပုံမှန်အမှားများ

【 MySQLI :: After_rows 】အချက်အလက်များကိုထည့်သွင်းပြီးနောက်ပုံမှန်အမှားများ

gitbox 2025-05-26

1 ။ MySQLI :: After_rows ၏အခြေခံအသုံးပြုမှု

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

$sql = "INSERT INTO users (username, email) VALUES ('testuser', '[email protected]')";
$mysqli->query($sql);

echo "ထိခိုက်အတန်းအရေအတွက်:" . $mysqli->affected_rows;
?>

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


2 ။ ဘုံနားလည်မှုလွဲမှားခြင်းနှင့်ဖြေရှင်းနည်းများ

နားလည်မှုလွဲခြင်း 1: ဒေတာထည့်သွင်းပြီးနောက် 0 ပြန်လာ 0 ပြန်လာပြီ, ၎င်းသည်သိသာထင်ရှားသည်

  • အကြောင်းမရှိ : အကယ် . သင်သည်ထည့်သွင်းမှုများကိုထပ်ခါတလဲလဲသော့မွမ်းမံမှုကြေညာချက်တွင် မွမ်းမံခြင်းနှင့်အမှန်တကယ်မည်သည့်ဒေတာကိုမွမ်းမံပါ က ,

  • ဥပမာ -

    • MySQL 5.1 နှင့်အထက်တွင် မိတ္တူပွားသောသော့မွမ်းမံမှု အပေါ်ထိခိုက်သောအတန်းအရေအတွက်မှာ 1 (ထည့်သွင်း) သို့မဟုတ် 2 (update) ဖြစ်သည်။

    • MySQL 5.7 ပြီးနောက်ဒေတာကိုအမှန်တကယ်မအဆင့်မြှင့်တင်ပါက 0 ပြန်လာလိမ့်မည်။

  • ဖြေရှင်းရန် :

    • သင်သည် MySQLI-> အချက်အလက်များကို အသေးစိတ်အတွက်စစ်ဆေးနိုင်သည်သို့မဟုတ်သင်၏လိုအပ်ချက်များနှင့်အညီဆင်ခြင်တုံတရားကိုညှိနိုင်သည်။

အမှား 2 - SQL အမျိုးမျိုးကိုအကောင်အထည်ဖော်သည့်အခါအကျိုးသက်ရောက်မှုရှိသောအတန်းအရေအတွက်သည်မတိကျပါ

 <?php
$sql = "INSERT INTO users (username) VALUES ('user1');";
$sql .= "INSERT INTO users (username) VALUES ('user2');";

$mysqli->multi_query($sql);
do {
    if ($result = $mysqli->store_result()) {
        $result->free();
    }
    echo "ထိခိုက်အတန်းအရေအတွက်:" . $mysqli->affected_rows . "\n";
} while ($mysqli->more_results() && $mysqli->next_result());
?>
  • မှတ်စု : $ ဘေးဒဏ်သင့်သော about_row သည်နောက်ဆုံးအကြိမ်ကွပ်မျက်ခံရသောစုံစမ်းမှုတစ်ခုဖြစ်သည်။ အကယ်. သင်သည်ရှင်းလင်းသောထုတ်ပြန်ချက်များစွာကိုအသုတ်တွင်အကောင်အထည်ဖော်လျှင်ဖော်ပြချက်တစ်ခုစီအတွက်အကျိုးသက်ရောက်သောအတန်းအရေအတွက်ကိုတိတိကျကျရရန်ရလဒ်များကိုတစ်ခုမှတစ်ခုစီမှရရှိရမည်။

နားလည်မှုလွဲခြင်း 3: $ ဘေးဒဏ်သင့်သည့် about_rows သည် Select stirection အတွက်မမှန်ကန်ပါ

  • $ ဘေးဒဏ်သင့်သည့် INTER_RAWS သည်ရေးသားခြင်းလုပ်ငန်းများအတွက်သာတရားဝင်သည် (ထည့်သွင်းခြင်း, မွမ်းမံခြင်း, ဖျက်ခြင်း) ။ Selected Statement သည်မည်သည့်အတန်းရေတွက်ခြင်းနှင့်ပြန်ရောက်မှုကိုမဆိုအကျိုးသက်ရောက်မည်မဟုတ်ပါ။

  • အကယ်. သင်သည်ရလဒ်မည်မျှရရှိသည်ကိုသင်သိလိုပါက $ ရလဒ်> Num_rows ကို သုံးသင့်သည်။


3 ။ $ ဘေးဒဏ်သင့်အတွက် ထိခိုက်အခြားအချက်များ

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

  • Trigger သက်ရောက်မှု - MySQL ခလုတ်ခုံအတွင်းတွင်အတန်းများပြုပြင်ခြင်းသည် PHP တွင် ဘေးဒဏ်သင့်သည့်ဒေါ်လာ ၏တန်ဖိုးကိုပြောင်းလဲလိမ့်မည်မဟုတ်ပါ။

  • ဆက်သွယ်မှုအခြေအနေ - MySQLI connection သည်ပုံမှန်ဖြစ်အောင်လုပ်ပါ


4 ။ အကြံပြုချက်ကျွမ်းကျင်မှု

  • SQL အမှားများကိုစစ်ဆေးရန် $ MySQLI-> အမှားကို သုံးပါ။

  • အများဆုံးမကြာသေးမီကကွပ်မျက်ခံရသည့်ကြေညာချက်၏အသေးစိတ်အချက်အလက်များကိုကြည့်ရှုရန် $ MySQLI-> အချက်အလက်များကို သုံးပါ။

  • MySQL မှတ်တမ်းများကိုဖွင့်ပါ။


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

MySQLI :: $ ဘေးဒဏ်သင့်သည့် about_rows သည်ရေးရေးလုပ်ငန်းကိုအကျိုးသက်ရောက်စေသောအတန်းအရေအတွက်ကိုရှာဖွေရန်ထိရောက်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်အောက်ပါအခြေအနေများတွင်ရှုပ်ထွေးရန်လွယ်ကူသည်။

  • ရှုပ်ထွေးသော SQL ကိုအသုံးပြုသောအခါ ( ထပ်တူသော့မွမ်းမံမှု ကဲ့သို့သော) ကိုအသုံးပြုသောအခါ,

  • Multiple Multiple Multiple Multiple Multiple Multiple ကွပ်မျက်ခံရသည့်အခါရလဒ်များကိုတစ်ခုဖြင့်ပြုလုပ်ရန်လိုအပ်သည်။

  • Selected ထုတ်ပြန်ချက်သည်အတန်းအရေအတွက်ကို အသုံးပြု. ဒေါ်လာရလဒ် - နံပါတ်များကို သုံးပါ။

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

သငျသညျ၎င်း၏အလုပ်လုပ်နိယာမအခြေအနေနှင့်နယ်နိမိတ်အခြေအနေများနားလည်သဘောပေါက်နေသမျှကာလပတ်လုံး $ ဘေးဒဏ် သင့် right_row သည်ဒေတာဘေ့စ်စစ်ဆင်ရေးအကျိုးသက်ရောက်မှုကိုတိကျစွာတရားစီရင်နိုင်ရန်နှင့် code အားကြံ့ခိုင်မှုကိုတိုးတက်စေသည်။