PHP တွင် MySQLI extension ကို သုံး. ဒေတာဘေ့စ်ကိုအသုံးပြုရန်အတွက် ဒေါ်လာ MySQLI-> Temper_rows သည်အလွန်အသုံးများသောပိုင်ဆိုင်မှုတစ်ခုဖြစ်သည်။ သို့သော်တစ်ခါတစ်ရံတွင် MySQLI-> FILL_RAWS ပြန်လာသည့်အခြေအနေကိုကြုံတွေ့ရသည် ။ ဒါဘာကိုဆိုလိုတာပါလဲ? ဤဆောင်းပါးသည်သင့်အား Code ပြ problems နာများကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်ပြ problems နာများကိုပိုမိုနားလည်သဘောပေါက်စေသည့်ဘုံအခြေအနေများစွာကိုဆန်းစစ်ရန်သင့်အားဤဆောင်းပါးသည်သင့်အားယူပါလိမ့်မည် ။
MySQLI :: After_rows သည် နောက်ဆုံးအကြိမ်ကွပ်မျက်ခံရသောထုတ်ပြန်ချက်များကိုထည့်သွင်းခြင်း, ဥပမာအားဖြင့်:
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$mysqli->query("UPDATE users SET active = 1 WHERE id = 10");
echo $mysqli->affected_rows; // ထိခိုက်သောအတန်းအရေအတွက် output
?>
ဤနောက်ဆုံးသတင်းကိုအောင်မြင်စွာကွပ်မျက်ခံရပါက $ ဘေးဒဏ်သင့်သည့် about_rows သည် ပြုပြင်ထားသောအတန်းအရေအတွက်ကိုညွှန်ပြသည့်အနုတ်လက်ခဏာမဟုတ်သောကိန်းဂဏန်းများကိုပြန်ပို့လိမ့်မည်။ သို့သော်အမှားတစ်ခုဖြစ်ပွားသည့်အခါသို့မဟုတ်အထူးအခြေအနေအချို့တွင်ပြန်လည်နေရာချထားခြင်းမှာ -1 ဖြစ်နိုင်သည်။
အကယ် . သင်၏ SQL ကြေငြာချက်သည် execute လုပ်ရန်ပျက်ကွက်ပါက syntax အမှားများကဲ့သို့စားပွဲမတည်ရှိပါ ။ ဤအချိန်တွင်သင်ဆုံးဖြတ်ရန်အမှားအယွင်းကိုစစ်ဆေးသင့်သည်။
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("UPDATE non_existing_table SET active=1");
if ($result === false) {
echo "စုံစမ်းမှုမအောင်မြင်ပါ,အမှားသတင်းစကား:" . $mysqli->error;
echo "ထိခိုက်အတန်းအရေအတွက်:" . $mysqli->affected_rows; // ဒီမှာ output ကိုပါလိမ့်မယ် -1
}
?>
$ ဘေးဒဏ်သင့်သည့် abrows သည် လူတန်းစားလုပ်ငန်းများကိုပြုပြင်ရန် အတွက်အဓိပ္ပာယ်ပြည့်ဝသည် (ထည့်သွင်းခြင်း, update, ဖျက်ခြင်း, ဖျက်ခြင်း) အတွက်အဓိပ္ပါယ်ရှိသောသာဖြစ်သည်။ အကယ်. သင်သည်ဒေတာကိုမပြောင်းလဲသည့်ရွေးချယ်မှု, ပြပွဲသို့မဟုတ်အခြားမေးမြန်းချက်များကိုသင်ကွပ်မျက်ခံရလျှင် $ ဘေးဒဏ်သင့်သော about_rows -1 သို့ပြန်သွားပါလိမ့်မည်။
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$mysqli->query("SELECT * FROM users");
echo $mysqli->affected_rows; // ထုတ်လုပ်ခြင်း -1,အကေြာင်းမှာSELECTအတန်းအရေအတွက်ကိုမထိခိုက်ပါဘူး
?>
အကယ်. သင်ငွေပေးငွေယူကိုအသုံးပြုပါကပြုပြင်မွမ်းမံခြင်းပြုလုပ်ပါ။ မကျူးလွန်ပါနှင့် ။ ငွေပေးငွေယူမှန်ကန်စွာတင်သွင်းခဲ့ကြောင်းသေချာပါစေ။
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$mysqli->autocommit(false);
$mysqli->query("UPDATE users SET active=1 WHERE id=5");
echo $mysqli->affected_rows; // ဒါဟာနေဆဲမှန်ကန်သောပြလိမ့်မည်
$mysqli->commit();
?>
uncommittened ငွေကြေးလွှဲပြောင်းမှုသည်အမှန်တကယ်ကျရှုံးမှုများဖြစ်ပေါ်စေနိုင်သည် ။
Preprocessing ဟူသောကြေညာချက်နှင့် ပတ်သက်. အကာအကွယ်ပေးသည့်အခါအချို့သောကိစ္စရပ်များတွင် ဒေါ်လာ stmt-> ဘေးဒဏ်သင့်သူများသည် -1 ဖြစ်နိုင်သည်, ဥပမာ - အတန်းအရေအတွက်ကိုပြန်ပို့ခြင်းမပြုရသေးသော query ကိုမအောင်မြင်ပါ။
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$stmt = $mysqli->prepare("UPDATE users SET active=1 WHERE id=?");
$id = 10;
$stmt->bind_param("i", $id);
$stmt->execute();
echo $stmt->affected_rows; // ဖြစ်ရှိလျက်-1,Execute Neceport ကိုဖော်ပြသည်
?>
မည်သည့်အမှားရှိ, မရှိအတည်ပြုရန် $ stmt-> အမှားကို စစ်ဆေးရန်သေချာပါစေ။
SQL Execution အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ ပြန်လည်နေရာချထားရေးတန်ဖိုးမှာ မမှန်မကန် ဖြစ် / မမှန်သည်ကိုဆုံးဖြတ်ခြင်းအားဖြင့်အသေးစိတ်အမှားအချက်အလက်များရရန် $ MySQLI-> အမှားကို ခေါ်ဆိုခြင်းအားဖြင့်ဖြစ်သည်။
SQL ကြေငြာချက်အမျိုးအစားကိုအတည်ပြုပါ
ထိခိုက်နစ်နာမှု သည်ပြုပြင်မွမ်းမံခြင်းလုပ်ငန်းများအတွက်သာတရားဝင်သည်။
ငွေပေးငွေယူအခြေအနေကိုစစ်ဆေးပါ စစ်ဆင်ရေးကိုပြုပြင်မွမ်းမံထားသည့်ငွေပေးငွေယူကိုတင်ပြသည်။
Preprocessing ထုတ်ပြန်ချက်များအပေါ်မှားယွင်းသောစီရင်ချက်ချခြင်း <br> <br> $ stmt-> execute () သည်အောင်မြင်ပြီးအမှားကိုအချိန်မီကိုင်တွယ်သည်ကိုစစ်ဆေးပါ။
MySQLI :: $ ဘေးဒဏ်သင့်သည့်ဘေး ဒဏ်သင့်သည် -1 -1 -1 -111, 1 ။
၎င်းကိုအသုံးပြုသောအခါ, အမှားအယွင်းများနှင့် SQL ကြေငြာချက်အမျိုးအစားများကိုသင်ဆုံးဖြတ်ရန်ပေါင်းစပ်ထားရမည်။
Code ကိုရေးသည့်အခါ $ MySQLi-> အမှား သို့မဟုတ် $ stmtt-> အမှားကို စစ်ဆေးခြင်းသည်အလျင်အမြန်ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေနိုင်သည်။
အထက်ပါနည်းလမ်းများမှတစ်ဆင့် MySQLI :: AFFIVE_RAWS -1 -1 -1 -1 ဖြင့်ပြန်လည်ရရှိခြင်းနှင့်စာချုပ်သက်တမ်းတိုးတက်ရန်နှင့် debugging စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်ပြုလုပ်နိုင်သည့်အခြေအနေကိုပိုမိုတိကျစွာနားလည်ပြီးကိုင်တွယ်နိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli