ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါထိရောက်မှုကိုတိုးတက်စေရန်တစ်ကြိမ်တွင် SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်တစ်ခါတစ်ရံလိုအပ်သည်။ MySQLI extension သည် Multi-Statement Multi-struntion ကိုထောက်ပံ့ရန်အထောက်အပံ့များကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည် နောက်တစ်နေ့တွင် နောက်ထပ်အခန်းကဏ် and နှင့်အသုံးပြုမှုအခြေအနေများကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။
Multi-statement execute သည် SQL ထုတ်ပြန်ချက်များကိုဒေတာဘေ့စ်တစ်ခုချင်းစီတွင်ကွပ်မျက်ရန်ခွင့်ပြုသည် ။ ဥပမာအားဖြင့်:
SELECT * FROM users;
SELECT * FROM orders;
MySQLI :: Multiery () နည်းလမ်းကိုအသုံးပြုခြင်းအားဖြင့်အထက်ဖော်ပြပါမေးမြန်းချက်များကိုတစ်ကြိမ်တွင်ကွပ်မျက်နိုင်သည်။
Multi_query () ကို သုံး. ထုတ်ပြန်ချက်များစွာကိုအကောင်အထည်ဖော်သည့်အခါကြေငြာချက်တစ်ခုစီသည်လွတ်လပ်သောရလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။ Next_result () ၏ရည်ရွယ်ချက်မှာဖော်ပြချက်တစ်ခုစီကိုမှန်ကန်စွာပြုပြင်နိုင်ရန်သေချာစေရန်ဤရလဒ်မှတစ်ဆင့်ကြားခံရခြင်းဖြစ်သည်။
အကယ်. Next_result () ကိုမခေါ်ပါကပထမအကြိမ်ကြေငြာချက်၏ရလဒ်များကိုပြုလုပ်နိုင်ပြီးကျန်ထုတ်ပြန်ချက်များ၏ရလဒ်များကိုလျစ်လျူရှုခြင်းသို့မဟုတ်အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။
Multi_Query () နှင့် Next_result () သုံး. အပြည့်အဝဥပမာတစ်ခုရှိသည်။
<?php
// ဒေတာဘေ့စ် connection configuration ကို
$host = 'localhost';
$user = 'root';
$password = 'password';
$database = 'test_db';
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$mysqli = new mysqli($host, $user, $password, $database);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($mysqli->connect_error) {
die('ဆက်သွယ်မှုမအောင်မြင်ပါ:' . $mysqli->connect_error);
}
// အပိုင်းများစွာရှိသော SQL အသေအချာပေြာဆိုချက်
$sql = "SELECT * FROM users; SELECT * FROM orders;";
// 执行多အသေအချာပေြာဆိုချက်查询
if ($mysqli->multi_query($sql)) {
do {
// လက်ရှိရလဒ် set ကိုသိမ်းထားပါ
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
print_r($row);
}
// ရလဒ်ကိုလွှတ်ပေးရန်
$result->free();
}
// ပိုမိုရလဒ်များရှိမရှိစစ်ဆေးပါ
} while ($mysqli->more_results() && $mysqli->next_result());
} else {
echo "စုံစမ်းမှုမအောင်မြင်ပါ:" . $mysqli->error;
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>
ဒေတာဘေ့စ် connection တစ်ခုတည်ဆောက်ပါ။
ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန် MySQLI ကို သုံးပါ။
မျိုးစုံ SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ပါ။
semicolons နှင့်အတူမျိုးစုံစုံစမ်းမှုထုတ်ပြန်ချက်များကိုခွဲခြား။
Multi-statement query ကို execute လုပ်ပါ။
ထုတ်ပြန်ချက်များအားလုံးကို execute လုပ်ရန် Multi_query () ကို သုံးပါ။
ရလဒ်အစုအဝေးကိုဖြတ်သန်း:
Store_Result () မှတဆင့်လက်ရှိရလဒ်ကိုရယူပါ။
FETLE_AST_ASTARE () ကို လိုင်းအားဖြင့် output data line သို့သုံးပါ။
Memory ကိုကယ်တင်ရန်လက်ရှိရလဒ်ကိုအခမဲ့ဖြစ်သည်။
ရလဒ်အားလုံးလုပ်ငန်းများ၌မရောက်မချင်းလာမည့်ရလဒ်ကိုပြောင်းရန် Next_result () ကို သုံးပါ။
ဒေတာဘေ့စ် connection ကိုပိတ်ပါ။
သယံဇာတကိုအခမဲ့နှင့်ဆက်သွယ်မှုကိုပိတ်ပါ။
MySQLI မှတိုးချဲ့ Object-oriented mode ကို အသုံးပြုရန်သေချာအောင်လုပ်ပါ။
SQL ကြေငြာချက်တစ်ခုစီကို Semicolon ( ; ) ဖြင့်ခွဲထားရန်လိုအပ်သည်။ သို့မဟုတ်ပါက syntax အမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
ရလဒ်များပြုပြင်ပြောင်းလဲရေးအတွက် လာမည့် _Result () ကို သုံးရန်သေချာပါစေ။
Next_Result () ကိုအောက်ပါအခြေအနေများတွင်အသုံးပြုသည်။
စားပွဲမျိုးစုံမှအချက်အလက်များ၏အသုတ်ရှာဖွေမှု။
မျိုးစုံ update ကို execute, အသုတ်တွင်ဖော်ပြချက်များကိုထည့်သွင်းသို့မဟုတ်ဖျက်ပါ။
သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းကိုကွပ်မျက်သည့်အခါမျိုးစုံရလဒ်အစုံပြန်လည်ရောက်ရှိစေသည်။
ဥပမာအားဖြင့်, အသုံးပြုသူသတင်းအချက်အလက်နှင့်အမှာစာအချက်အလက်များကိုအသုတ်များရှာဖွေခြင်းကိုရှာဖွေခြင်းသည်ရလဒ်နှစ်ခုကိုဒေတာဘေ့စ်ဆက်သွယ်မှုတစ်ခုတည်းဖြင့်ရရှိနိုင်ပါသည်။
Next_Result () သည် Multi-statement query ကိုကိုင်တွယ်ခြင်း၏မရှိမဖြစ်လိုအပ်သောအစိတ်အပိုင်းတစ်ခုဖြစ်ပြီးရလဒ်အလုံးအရင်းတစ်ခုချင်းစီကိုမှန်ကန်စွာပြုပြင်နိုင်သည်ကိုသေချာစေသည်။ ဆင်ခြင်တုံတရားပေါင်းများစွာ နှင့် နောက်ဆက်တွဲ _result () ကို အသုံးပြု. ဒေတာဗားရှင်းစစ်ဆင်ရေး၏ထိရောက်မှုကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။