PHP နှင့် MySQL တို့အကြားအပြန်အလှန်ဆက်သွယ်မှုစဉ်အတွင်း developer များမှာ multi_query () နှင့် Next_result () နှင့် အခြား functions များနှင့်အဆက်အသွယ်ရှိကြသည်။ သို့သော်အစပြုသူများသည်စာရွက်စာတမ်းများကိုဖတ်ရှုသောအခါသို့မဟုတ်၎င်းတို့အားဖွံ့ဖြိုးတိုးတက်ရန်ကြိုးစားနေသည့်အခါဤလုပ်ဆောင်ချက်နှစ် ခု၏ အသုံးပြုမှုကိုရှုပ်ထွေးစေသည်။
ဤဆောင်းပါးသည်တာ 0 န ် 0 တ္တရားများ, လုပ်ငန်းယန္တရားများ ကို လေ့လာခြင်း,
Multi_query () သည် PHP MySQLI extension တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည် SQL ထုတ်ပြန်ချက်များကိုချက်ချင်းလုပ်ဆောင်ရန် ဖြစ်သည်။ ဤ SQL ထုတ်ပြန်ချက်များကို semicolons ( ; ) ကို semicolons (;) တစ် ဦး long sql string ကိုဖွဲ့စည်းရန်။
$mysqli = new mysqli("localhost", "user", "password", "database");
$sql = "SELECT * FROM users; SELECT * FROM orders;";
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
print_r($row);
}
$result->free();
}
} while ($mysqli->next_result());
} else {
echo "Execution မအောင်မြင်ပါ: " . $mysqli->error;
}
ဤဥပမာတွင် Multi_query () သည် Multi_Query () သည် Multi-letiery set processing စီးဆင်းမှုကိုစတင်သည်။ ထို့နောက်နောက်ဆက်တွဲ ဖော်ပြချက်တစ်ခုစီ၏ရလဒ်များကိုရယူသည်။
Next_result () ၏တာ 0 န်သည် MySQLI ကိုနောက်ရလဒ်အဖြစ်တွန်းအားပေးရန် ဖြစ်သည်။ ၎င်းသည်မည်သည့် SQL ကိုမဆို execute မလုပ်နိုင်ပါ,
ဆိုလိုသည်မှာ Next_result () သူ့ဟာသူသည် SQL, ၎င်းကိုဖြတ်သန်းရုံမျှမက execute လုပ်ခြင်းမရှိပါ ။
Multi_query () , Next_result () မခေါ်ဆိုပါ။ အပေါ် မူတည်. ၎င်းအပေါ်မူတည်သည့်အခြေအနေတွင် "မျိုးစုံထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ခဲ့ခြင်း" ဖြစ်သည်။
"Power Supping တွင်ချိတ်ဆက်စရာမလိုဘဲအဝေးထိန်းခလုတ်ဖြင့် TV ကိုအဘယ်ကြောင့်မဖွင့်နိုင်သနည်းဟုမေးခြင်းနှင့်တူသည်။ ဘာဖြစ်လို့လဲဆိုတော့ Next_Result () ဟာလုပ်ငန်းစဉ်စီးဆင်းမှုရဲ့အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီးအရေးယူဆောင်ရွက်မှုကိုအစပြုရန်အစမှတ်ခြင်းမဟုတ်ပါ။
ကွဲပြားခြားနားသောတာဝန်များ
Multi_query () () သည်ကာကွယ်ရေးအရာရှိဖြစ်သည်။
Next_Result () ကကြားဖြတ်သူပါ။
မှီခိုမှု
multi_query () ၏အခြေအနေတွင် ()) ၏အခြေအနေမရှိလျှင် Next_result () ကိုခေါ်ဆိုခြင်း () သည် မှားယွင်းစွာ ပြန်လာလိမ့်မည်။
Next_result () Multi_query () ကိုအောင်မြင်စွာကွပ်မျက်ခံရပြီးကိုသာနားလည်သည်။
ချို့ယွင်းချက်နှင့်ပြည်နယ်စီမံခန့်ခွဲမှုအမှား
Multi_query () သည်ထုတ်ပြန်ချက်များအားလုံးကိုအကောင်အထည်ဖော်ရန်နှင့်စတင်ရန်တာ 0 န်ရှိသည်။ အမှားတစ်ခုဖြစ်ပါကချက်ချင်းကြားဖြတ်နိုင်သည်။
Next_Result () သည် SQL ကိုပြန်လည်ရယူခြင်းသို့မဟုတ်ပြန်လည်ထူထောင်ခြင်းမပြုသည့်ရလဒ်အစုဖြစ်သည်။
ဇာတ်လမ်း - ဇယားကွက်ဖန်တီးမှုနှင့်ဒေတာထည့်သွင်းခြင်းကဲ့သို့သောလက်ခဏာမျိုးစုံထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်
$sql = "
CREATE TABLE IF NOT EXISTS logs (id INT AUTO_INCREMENT PRIMARY KEY, message TEXT);
INSERT INTO logs (message) VALUES ('အောင်မြင်စွာစတင်');
SELECT * FROM logs;
";
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo $row['message'] . "\n";
}
$result->free();
}
} while ($mysqli->next_result());
} else {
echo "တစ်ခုကွပ်မျက်အမှား: " . $mysqli->error;
}
ဤလျှောက်လွှာကိုဖြန့်ကျက်သော scripts, data data scastization စသည့်အခြေအနေများတွင်ဤ application တွင်သင်အသုံးပြုနိုင်သည်။
PHP Database Programming, Multi_query () နှင့် Next_result () တွင်အတူတကွအသုံးပြုသောကိရိယာများဖြစ်သည်။ ယခင်ကထုတ်ပြန်ချက်အရဒေတာဘေ့စ်သို့အချက်အလက်များစွာပေးပို့ရန်တာ 0 န်ရှိသည်။
SQL ထုတ်ပြန်ချက်များကို execute လုပ်ရန် Next_result () ကိုအသုံးပြုရန်ကြိုးစားခြင်းသည် "TV ကိုအဝေးမှထိန်းချုပ်မှုနှင့်အတူသာပြောင်းလဲရန်" နှင့်ညီမျှသည်။ ၎င်းသည်လုပ်ငန်းကိုလွတ်လပ်စွာမဖြည့်ဆည်းနိုင်ပါ။ သူတို့၏သက်ဆိုင်ရာတာဝန်များနှင့်အခြေအနေများကိုအပြည့်အဝနားလည်ခြင်းအားဖြင့်သာထိရောက်စွာတည်ငြိမ်ပြီးတည်ငြိမ်သောဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုကုဒ်ကိုရေးသားနိုင်သည်။
အကယ်. သင်သည်အခြားဖော်ပြချက်များကို သုံး. multi-statement multi-statement uncount ကိုတင်ဆက်ခြင်းဖြင့် test interface ကို သုံး. Multipps://gitbox.net/api/apiql-exec သို့တင်ပြရန် Multi_query () ၏အကျိုးသက်ရောက်မှုကိုတုပရန်လည်းမှတ်စုပေါင်းစုံလုပ်ဆောင်မှုနည်းလမ်းကိုသုံးရန်သတိရသင့်သည်။