PHP တွင်သိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများကို cursors ဖြင့်ကိုင်တွယ်ခြင်းသည်အထူးသဖြင့်ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်သောအခါဘုံလည်ပတ်မှုတစ်ခုဖြစ်သည်။ cursors သည် developer များဒေတာလိုင်းကိုလိုင်းဖြင့်ပြန်လည်ရယူရန်ခွင့်ပြုသည့်ဒေတာဘေ့စ်တွင်ထိန်းချုပ်မှုပုံစံဖြစ်သည်။ MySQL (သို့ ) maliadb ဒေတာဘေ့စ်ကိုသုံးသောအခါသိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများသည်ရလဒ်အစုအဝေးများကိုပြန်ပို့နိုင်ပြီးနောက်အခြေအနေကိုကိုင်တွယ်ရန်နောက် function ကိုအသုံးပြုသည်။
သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းတစ်ခုသည် ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသည့်ကြိုတင်ဖော်ပြထားသော SQL ထုတ်ပြန်ချက်များကိုကြိုတင်သတ်မှတ်ထားပြီးအကြိမ်ပေါင်းများစွာဟုခေါ်သည်။ သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများသည်ရလဒ်အချည်းနှီးဖြစ်စေသောရလဒ်များကိုပြန်ပို့နိုင်သည်။ PHP တွင် MySQLI extension သို့မဟုတ် pdo extension မှတဆင့် MySQL database နှင့်ဆက်သွယ်နိုင်သည်။
သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းတစ်ခုသည်ရလဒ်အလုံးစုံကိုပြန်လည်ရောက်ရှိလာသောအခါရလဒ်အားလုံးကိုပြန်လည်ရယူရန်အတွက် Next_result () ကို သုံးနိုင်သည်။ ဤလုပ်ဆောင်ချက်သည်ရလဒ်အလုံးအရင်းကိုပြန်လည်ပေးပို့သည့်အစုအဝေးများကိုပြန်လည်ရှာဖွေခြင်းကဲ့သို့သောရှုပ်ထွေးသောလုပ်ငန်းများကိုကိုင်တွယ်ရန်အလွန်သင့်လျော်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ရလဒ်အစုံများ၏ပြန်လည်ရောက်ရှိသောသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းတစ်ခုဖန်တီးရန်လိုအပ်သည်။ ဒေတာဘေ့စ်တွင်, သင်သည်တော်တော်များများ၏ရှာဖွေမှုရလဒ်များကိုပြန်ပို့သောရိုးရှင်းသောသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းတစ်ခုဖန်တီးနိုင်သည်။ ဤတွင်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းတစ်ခုဖန်တီးရန်ဥပမာတစ်ခုဖြစ်သည်။
DELIMITER $$
CREATE PROCEDURE multiple_results()
BEGIN
-- ပထမရလဒ်ကိုပြန်ပို့ပါ
SELECT * FROM users;
-- ဒုတိယရလဒ်ကိုပြန်ပို့ပါ
SELECT * FROM orders;
END$$
DELIMITER ;
ဤသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်း မျိုးစုံ () အမြောက်အများ () querties ၏ရလဒ်ကိုပြန်လည်ရှာဖွေခြင်း၏ရလဒ်အမြင့်နှစ်ခုနှင့် အ မှာ စာစားပွဲ၏အချက်အလက်များ၏အချက်အလက်များကိုပြန်လည်ရောက်ရှိစေသည်။
နောက်တစ်ခုကဒီသိုလှောင်ထားတဲ့လုပ်ထုံးလုပ်နည်းကိုခေါ်ယူဖို့ PHP code ကိုရေးပြီးရလဒ်အားလုံးကိုရဖို့ နောက် function ကိုသုံးမယ်။
<?php
// ဖန်တီး MySQLi ဆက်
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 检查ဆက်
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// သိုလှောင်လုပ်ထုံးလုပ်နည်းများကိုခေါ်ပါ
$mysqli->multi_query("CALL multiple_results()");
// ရလဒ် set ကို looping
do {
// လက်ရှိရလဒ် set ကိုရယူပါ
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
// လက်ရှိရလဒ်အစု၏ပါဝင်မှု output
echo "User ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
$result->free();
}
// နောက်ရလဒ်ကိုရယူပါ
} while ($mysqli->next_result());
// 关闭ဆက်
$mysqli->close();
?>
ဆက်သွယ်မှုတစ်ခုကိုဖန်တီးပါ ။ ပထမအချက်မှာ MySQLI အသစ်မှတဆင့် MySQL ဒေတာဘေ့စ် နှင့်ဆက်သွယ်မှုတစ်ခုဖန်တီးသည်။ ကျေးဇူးပြု. ဒေတာဘေ့စ်၏အိမ်ရှင်, အသုံးပြုသူအမည်, စကားဝှက်နှင့်ဒေတာဘေ့စ်အမည်ကိုပြုပြင်ပါ။
သိမ်းဆည်းထားသောသိမ်းထားသောလုပ်ထုံးလုပ်နည်းများကို execute လုပ်ထုံးလုပ်နည်းများ - သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများကို Multi_query () နည်းလမ်းဖြင့်လုပ်ဆောင်ပါ။ ဤဥပမာတွင် Multiple_results () ဟုခေါ်ဆိုပါ () သည် သိမ်းဆည်းထားသောသိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းအတိုင်းလုပ်ဆောင်သည်။
ရလဒ်မျိုးစုံရလဒ်များ - ရလဒ်အားလုံးရရန် Do-wheop ကိုသုံးပါ။ ကွင်းဆက်တစ်ခုစီတွင်ကျွန်ုပ်တို့သည်လက်ရှိရလဒ်ကိုသိုလှောင်ထားသည့် စတိုးဆိုင် () method () method () မှတစ်ဆင့်သတ်မှတ်ထားသည်။ ရလဒ်အစုများရှိပါက Next_result () သည် နောက်ရလဒ်သို့ခုန်ချလိမ့်မည်။
အခမဲ့ရလဒ် Set : လက်ရှိရလဒ်အစုကိုပြုပြင်ပြီးနောက် $ ရလဒ် -> အခမဲ့ () မှတဆင့်အခမဲ့မှတ်ဉာဏ်။
အမှားကိုင်တွယ်ခြင်း - အမှန်တကယ် applications များတွင်သင့်လျော်သောအမှားကိုင်တွယ်မှုယန္တရားများကို Database စစ်ဆင်ရေးများသို့ 0 င်ရောက်ရန်သေချာစေပါ။
ရလဒ်အစုအဝေးများကိုပြုပြင်ခြင်း - သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းသည်အလွန်ကြီးမားသည့်ရလဒ်ကိုပြန်လည်ရောက်ရှိပါကသို့မဟုတ်စုံစမ်းမှုဆိုင်ရာအချက်အလက်ပမာဏသည်ကြီးမားလာပါကစွမ်းဆောင်ရည်ပြ problems နာများကိုဖြစ်ပေါ်စေနိုင်သည်။ သင်သည်အတုအယောင်မေးမြန်းချက်များကိုစဉ်းစားနိုင်သည်သို့မဟုတ်မေးမြန်းချက်များကိုပိုမိုကောင်းမွန်စေရန်စဉ်းစားနိုင်သည်။
အသုံးပြုသူများ ဇယားနှင့် အမိန့် ဇယားတွင်အောက်ပါအချက်အလက်များပါ 0 င်သည်ဆိုပါစို့။
အသုံးပြုသူများ စားပွဲတင်:
+----+-------+
| id | name |
+----+-------+
| 1 | John |
| 2 | Jane |
+----+-------+
အမှာ စာ:
+----+------------+
| id | order_name |
+----+------------+
| 1 | Order A |
| 2 | Order B |
+----+------------+
output ကိုဖြစ်လိမ့်မည်:
User ID: 1 - Name: John
User ID: 2 - Name: Jane
Order ID: 1 - Order Name: Order A
Order ID: 2 - Order Name: Order B
PHP ၏ Next_result () function ကို အသုံးပြု. ရလဒ်အစုံများဖြင့်သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းများကိုထိရောက်စွာကိုင်တွယ်ရန်။ သင့်လျော်သောဒေတာဘေ့စ်မေးမြန်းချက်များနှင့် cursor processing မှတဆင့်ရလဒ်တစ်ခုချင်းစီကိုတဖြည်းဖြည်းချင်းရယူနိုင်ရန်နှင့်လျှောက်လွှာရှိအချက်အလက်များကိုပြောင်းလွယ်ပြင်လွယ်စွာလုပ်ဆောင်နိုင်သည်။ ရှုပ်ထွေးသောဒေတာဘေ့စ် application များကိုတီထွင်သည့်အခါဤနည်းသည်အထူးသဖြင့်အသုတ်စစ်ဆင်ရေးများသို့မဟုတ်အတုအယောင်မေးမြန်းချက်များလိုအပ်သည့်အခြေအနေတွင်ပြုလုပ်သောအခါဤနည်းသည်အလွန်အသုံးဝင်သည်။