ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP နှင့် MySQLI ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်တစ်ကြိမ်လျှင်စုံစမ်းမှုတစ်ခုသာလုပ်ဆောင်သည်။ သို့သော်အချို့သောရှုပ်ထွေးသောစီးပွားရေးလုပ်ငန်းများတွင်မေးမြန်းချက်တစ်ခုမှတစ်ခုချင်းစီကိုတောင်းဆိုမှုဖြင့်ကွပ်မျက်ရန်လိုအပ်နိုင်ပါသည်။ PHP ၏ MySQLI extension သည်ဤရလဒ်ကိုဖြတ်သန်းရန်အတွက် လာမည့် rourresult () function ကိုပေးသည်။
ဥပမာအားဖြင့်ထုတ်ပြန်ချက်များစွာပါ 0 င်သော SQL Queries များပါ 0 င်သည့်အခါရလဒ်မျိုးစုံကိုများသောအားဖြင့်ဖြစ်ပေါ်လေ့ရှိသည်။
SELECT * FROM users; SELECT * FROM orders;
SQL ကိုသိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများ (သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများ) သို့မဟုတ်အသုတ်များတွင်ကွပ်မျက်ခံရသည့်အခါ၎င်းသည်ဘုံဖြစ်သည်။ MySQLI_Multi_Query () PHP တွင်ဤအသုတ်ကွပ်မျက်မှုပုံစံကိုထောက်ပံ့သည်။
MySQLI_Multi_Query () နှင့် နောက်လာမည့် _resulult () နောက်ဆက်တွဲ (နောက်ဆက်တွဲ) ကို PHP တွင်ပြုလုပ်ရန်အခြေခံအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
Multi-statement query ကိုလုပ်ဆောင်ရန် MySQLI_Multi_Query () ကိုသုံးပါ
လက်ရှိရလဒ်ကိုရရှိရန် Store_Result () ကို သုံးပါ
နောက်ရလဒ်ကိုပြောင်းရန် Next_result () ကို သုံးပါ
ရလဒ်အစုအဝေးများနှင့်အချက်အလက်များကိုထုတ်ယူခြင်းကိုမည်သို့ရယူရမည်ဟုကွန်ကရစ်ဥပမာတစ်ခုရှိသည်။
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
$sql = "SELECT id, username FROM users; SELECT id, order_date FROM orders;";
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "<pre>";
print_r($row);
echo "</pre>";
}
$result->free();
}
// ပိုမိုရလဒ်များရှိမရှိစစ်ဆေးပါ
if ($mysqli->more_results()) {
echo "<hr>နောက်ရလဒ် set:<br>";
}
} while ($mysqli->next_result());
} else {
echo "စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါ: " . $mysqli->error;
}
$mysqli->close();
?>
SQL ထုတ်ပြန်ချက်များကို Semicolons ဖြင့်ခွဲထားကြောင်းသေချာပါစေ ။ Multi_Query () အတွက်လိုအပ်သည်။
ရလဒ်အနေဖြင့်ရလဒ်အလုံးအရင်းကို စတိုးဆိုင် () () နှင့်အရင်းအမြစ်များကိုအချိန်မီဖြန့်ချိရမည်ဖြစ်သည် ။
Next_result () သည် ဒေတာများကိုမပြန်ပါ။ ၎င်း၏ function သည်နောက်ရလဒ်ကိုထုတ်ယူရန် Store_result () ကို ဖွင့်ရန်ဖြစ်သည် ။
Debugging လုပ်နေစဉ်မှာ MySQLI-> အမှားကို ကြည့်ရှုရန်အမှားအယွင်းများကိုကြည့်ရှုရန်သင်ပုံနှိပ်နိုင်သည် ။
စားပွဲမျိုးစုံမှ Batches မှဒေတာများကိုဖတ်ပြီးစာမျက်နှာတစ်ခုတည်းတွင်ပြပါ
မျိုးစုံရလဒ်အစုအဝေးကိုပြန်ပို့သောသိုလှောင်လုပ်ထုံးလုပ်နည်းများကိုခေါ်ပါ
ရှုပ်ထွေးသောစာရင်းအင်းခွဲခြမ်းစိတ်ဖြာမှု sql မေးမြန်းချက်များကိုဖျော်ဖြေတဲ့အခါ
ကြေငြာချက်ဆိုင်ရာစုံစမ်းမှုများကိုအကောင်အထည်ဖော်သည့်အခါ SQL Injection အန္တရာယ်များကိုအာရုံစိုက်ရန်သေချာပါစေ။ ပြင်ဆင်ခြင်း နှင့် bind_param နည်းလမ်းများအသုံးပြုခြင်းသည်ပိုမိုလုံခြုံသောချဉ်းကပ်နည်းဖြစ်သည်။ သို့သော် Multi_query () သည် ပြင်ဆင်ခြင်းကို မပံ့ပိုးနိုင်သော်လည်း၎င်းသည်ယုတ္တိဗေဒကိုအန္တရာယ်များကိုရှောင်ရှားရန်နည်းလမ်းများကိုခွဲခြားနိုင်သည်။