PHP တွင် MySQL databases ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည်မေးမြန်းမှုမျိုးစုံကိုအကောင်အထည်ဖော်ရန်လိုအပ်သည်။ mysqli_multi_query () စုံစမ်းမှုများစွာကိုအကောင်အထည်ဖော်နိုင်စွမ်းကိုပေးသည်။ သို့သော်မေးမြန်းချက်မျိုးစုံကိုအကောင်အထည်ဖော်နိုင်ပြီး, ဤအချိန်တွင်နောက်တစ်ကြိမ်တွင် နောက်တစ်ခေါက် နည်းလမ်းသည်အသုံးဝင်သည်။ နောက်ဆောင်းပါးတွင် Next_result () နှင့် mysqli_multi_query () မှတဆင့်စုံစမ်းမှုပေါင်းသင်းဆက်ဆံရေးလုပ်ငန်းစဉ်ကိုအကောင်အထည်ဖော်ရန်မည်သို့အကောင်အထည်ဖော်ရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
MySQLI_Multi_Query () - ဤသည်မှာ MySQLI မှ SQL Query မျိုးစုံကိုလုပ်ဆောင်ရန် MySQLI မှပေးသောနည်းလမ်းဖြစ်သည်။ ဤနည်းလမ်းသည် SQL Query မျိုးစုံကိုတစ်ပြိုင်နက်တည်းကွပ်ကဲပြီးကွပ်မျက်သည်အောင်မြင်မှုရှိမရှိကိုညွှန်ပြရန် boolean value ကိုပြန်ပို့သည်။
ဥပမာ -
$mysqli->multi_query($query);
Next_result () - ဤသည်မှာ MySQLI မှစုံစမ်းမှုရလဒ်များအတွက်နောက်ရလဒ်ရရှိရန်အတွက်အခြားသောအခြားနည်းလမ်းတစ်ခုဖြစ်သည်။ အကယ်. စုံစမ်းမှုတွင်ရလဒ်အနေဖြင့်ရလဒ်မျိုးစုံရှိပါက (ထိုကဲ့သို့သော ရွေးချယ်ထားသော မေးမြန်းချက်များကဲ့သို့သော) တွင်ရလဒ်တစ်ခုချင်းစီကို sequence ကိုရရှိရန် Next_result () ကို သုံးရန်လိုအပ်သည်။
ဥပမာ -
$mysqli->next_result();
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်နှင့် MySQL connection ကိုထူထောင်ရန်သေချာစေရန်လိုအပ်သည်။
<?php
$mysqli = new mysqli('localhost', 'user', 'password', 'database');
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
?>
ထို့နောက်ကျွန်ုပ်တို့သည်မေးမြန်းချက်များစွာပါသည့် SQL ကြေညာချက်ကိုကျွန်ုပ်တို့တည်ဆောက်သည်။
<?php
$query = "SELECT * FROM users;
SELECT * FROM products;
SELECT * FROM orders;";
?>
အထက်ပါကုဒ်တွင်ကျွန်ုပ်တို့တွင်မေးမြန်းချက်သုံးခုရှိသည် - မေးမြန်းမှု အသုံးပြုသူများ ဇယားတစ်ခု, query query perform ည့် ထုတ်ကုန် ဇယားတစ်ခုနှင့် Qu Query Procession စားပွဲတစ်ခုစီ။ ဤမေးမြန်းချက်များကိုအကောင်အထည်ဖော်ရန်နှင့်တစ်ခုချင်းစီ၏ရလဒ်များကိုရရှိလိုသည်။
query တစ်ခုချင်းစီကိုရယူရန်အတွက် queryies များကို execute လုပ်ရန်နှင့် Next_result () ကို သုံးရန် MySQLI_Multi_query () ကိုသုံးပါ။
<?php
// စုံစမ်းမှုများကိုမျိုးစုံလုပ်ဆောင်ပါ
if ($mysqli->multi_query($query)) {
// တစ်ခုချင်းစီကိုရလဒ် set ကို looping
do {
if ($result = $mysqli->store_result()) {
// တစ်ခုချင်းစီကိုစုံစမ်းမှုတစ်ခုအတွက်ရလဒ် set ကိုရယူပါ
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
$result->free();
}
// ပိုပြီးရလဒ်အစုံရှိပါတယ်လျှင်,ဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်
if ($mysqli->more_results()) {
$mysqli->next_result();
}
} while ($mysqli->more_results());
} else {
echo "Error: " . $mysqli->error;
}
?>
Execute query : $ MySQLI-> Multi_Query ($ query) သည် မေးမြန်းချက်မျိုးစုံကိုအကောင်အထည်ဖော်ရန်အသုံးပြုသည်။ အကယ်. စုံစမ်းမှုအောင်မြင်ပါက၎င်းသည် မှန်ကန်စွာ ပြန်လည်ရောက်ရှိပြီး လုပ် ပါ။
ရလဒ်တစ်ခုချင်းစီကိုရလဒ်ခြင်း - $ MySQLI-> Store_result () ကို လက်ရှိစုံစမ်းမှုကိုရရှိရန်အသုံးပြုသည်။ FETLE_ASTROUC () မှတဆင့်အချက်အလက်များ၏အတန်းတစ်ခုစီမှတစ်ဆင့်ကြားဖြတ်။
ရလဒ်အဘို့အပိုရဖို့ : $ MySQLI-> More_results () ပိုမိုရလဒ်များရှိမရှိစစ်ဆေးရန်အသုံးပြုသည်။ သို့ဆိုလျှင်နောက်ရလဒ်ကိုဆက်လက်ရယူရန် Next_result () ကို သုံးပါ။
အခမဲ့အရင်းအမြစ်များ - ရလဒ်တစ်ခုစီ၏လုပ်ငန်းစဉ်တစ်ခုစီပြီးနောက်ကျွန်ုပ်တို့သည်အမှတ်အသားကိုလွှတ်ရန် အခမဲ့ () ကို သုံးသည်။
Queress Order : MySQLI_Multi_Query () သည်အစဉ်အလာအနေဖြင့်မေးမြန်းချက်မျိုးစုံကိုလုပ်ဆောင်ခဲ့ပြီး Execute အမိန့်သည် SQL ထုတ်ပြန်ချက်များတွင်အမိန့်နှင့်ကိုက်ညီသည်။
အမှားကိုင်တွယ်ခြင်း - မေးမြန်းချက်မျိုးစုံကိုကွပ်မျက်ခံရသည့်အခါမည်သည့်စုံစမ်းမှုပေါ်ပေါက်လာပါကလုပ်ငန်းစဉ်တစ်ခုလုံးပျက်ပြားသွားနိုင်သည်။ အမှားအယွင်းများကိုကောင်းစွာကိုင်တွယ်ရန်သေချာပါစေ။
ဒေတာလုံခြုံရေး - SQL ဆေးထိုးပြ problems နာများကိုကာကွယ်ရန်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုအသုံးပြုပါ။ မေးမြန်းချက်များစွာကိုအကောင်အထည်ဖော်သောအခါအချက်အလက်လုံခြုံရေးကိုကာကွယ်ရန် Preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုရန်အကောင်းဆုံးဖြစ်သည်။
အကယ်. သင်သည်စုံစမ်းမှုတွင် URL တွင်ပါ 0 င်ပြီး GitBox.net ဖြင့် domain name ကိုအစားထိုးရန်လိုအပ်ပါက -
<?php
$query = "SELECT * FROM websites WHERE url = 'http://example.com';";
?>
ဤကိစ္စတွင်, သင် URL ၏ domain name ကို gitbox.net ဖြင့်အစားထိုးလိုက်ပါ။
<?php
$query = "SELECT * FROM websites WHERE url = 'http://gitbox.net';";
?>
ဤနည်းအားဖြင့်သင်သည် domain အမည်များအားလုံးကို GitBox.net နှင့်ပြောင်းလွယ်ပြင်လွယ်ကိုအစားထိုးနိုင်သည်။