PHP ၏ MySQLI extension ကို အသုံးပြု. ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်သောအခါသိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများကိုခေါ်ဆိုခြင်းသည်အဆန်းမဟုတ်ချေ။ ဤကိစ္စတွင် MySQL ၏သိမ်းထားသောလုပ်ထုံးလုပ်နည်းအမှားများကိုများသောအားဖြင့် PHP ဟုခေါ်သောအဘယ်ကြောင့်ဆိုသော် Debugging အမှားများကိုအတော်လေးခက်ခဲနိုင်သည်။ ကံကောင်းထောက်မစွာပင် PHP ၏ MySQLI_STMT :: $ error property error error heror property သည်သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းခေါ်ဆိုမှုများမှအမှားအချက်အလက်များကိုဖမ်းယူရန်ကူညီပေးနိုင်သဖြင့် debugging အတွက်သဲလွန်စများကိုပေးနိုင်သည်။ ဤဆောင်းပါးသည်ဤပိုင်ဆိုင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
PHP တွင် MySQLI_STMT :: $ အမှားကို ကြိုတင်သတ်မှတ်ထားသည့်ထုတ်ပြန်ချက်များနှင့်ဆက်စပ်သောအမှားအချက်အလက်များကိုရရှိရန်အသုံးပြုသည်။ $ error error property ကကြေငြာချက်ကိုကွပ်မျက်သည့်အခါဖြစ်ပေါ်လာသောအမှားအယွင်းများကိုဖော်ပြသည့် string ကိုပြန်လည်ရောက်ရှိစေသည်။ အကယ်. သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းခေါ်ဆိုမှုသည်မအောင်မြင်ပါက SQL query သည်ပျက်ကွက်ပါကပြ the နာ၏အမြစ်၏အကြောင်းရင်းကိုရှာဖွေရန်အတွက်အသေးစိတ်အမှားအချက်အလက်များကိုရယူရန်ဤပစ္စည်းများကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းများခေါ်ဆိုမှုများကိုမည်သို့ debug လုပ်နည်းများကိုသရုပ်ပြရန် MySQLI_STMT :: $ အမှားအယွင်းများကို မအောင်မြင်ပါ။ ဒေတာဗေ့စ်နှင့်ချိတ်ဆက်ရန်သေချာစေရန်နှင့်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းကိုမှန်ကန်စွာတပ်ဆင်ရန်သေချာစေရန်လိုအပ်သည်။ ကျွန်ုပ်တို့တွင် Get_User_info ဟုခေါ်သောသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းတစ်ခုရှိပြီး သုံးစွဲသူ Zids_id parameter ကိုယူပြီးအသုံးပြုသူ၏အချက်အလက်များကိုပြန်ပို့သည်ဆိုပါစို့။ ဤသိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းကိုမည်သို့ခေါ်ဆိုနိုင်ပြီး MySQLI_STMMT ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသောဖြစ်နိုင်ချေရှိသော PHP script တစ်ခုဖြစ်ပြီး MySQLI_STMMT ::
ပထမ ဦး စွာဒေတာဗေ့စ်နှင့်ဆက်သွယ်မှုတစ်ခုပြုလုပ်ရန်နှင့်အောင်မြင်မှုရှိမရှိစစ်ဆေးရန်လိုအပ်သည်။
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_database";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
?>
ထို့နောက်ကျွန်ုပ်တို့သည်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းကိုခေါ်ရန်အဆင်သင့်ဖြစ်သည်။ အကယ်. ခေါ်ဆိုမှုမအောင်မြင်ပါကအသေးစိတ်အမှားအချက်အလက်များရရန် MySQLI_STMT :: $ အမှားကို အသုံးပြုမည်။
<?php
$user_id = 1; // ကျွန်ုပ်တို့မေးမြန်းလိုသောအသုံးပြုသူကိုဆိုပါစို့ ID
// သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းခေါ်ဆိုမှုများကိုပြင်ဆင်ပါ
$stmt = $conn->prepare("CALL get_user_info(?)");
if ($stmt === false) {
die("သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းပြင်ဆင်မှုမအောင်မြင်ပါ: " . $conn->error);
}
// parameters တွေကိုချည်ထား
$stmt->bind_param("i", $user_id);
// သိမ်းထားသောလုပ်ထုံးလုပ်နည်းများကို execute လုပ်ပါ
$stmt->execute();
// ကွပ်မျက်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($stmt->errno) {
echo "သိမ်းဆည်းထားသည့်လုပ်ထုံးလုပ်နည်းကွပ်မျက်မှုမအောင်မြင်ပါ: " . $stmt->error;
} else {
// ရလဒ်များကိုရယူပါ
$result = $stmt->get_result();
$user = $result->fetch_assoc();
print_r($user);
}
// ကြေငြာချက်
$stmt->close();
// ဆက်သွယ်မှုကိုပိတ်ပါ
$conn->close();
?>
သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းခေါ်ဆိုမှုမအောင်မြင်ပါက $ stmt-> errno နှင့် $ stmt-> အမှားသည် အသေးစိတ်အချက်အလက်များကိုပေးလိမ့်မည်။ ဥပမာအားဖြင့်, သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းအမည်မှားယွင်းနေသည်သို့မဟုတ် parameters များသည်မကိုက်ညီပါက ဒေါ်လာ stmt-> အမှားသည် သင့်အားပြ the နာကိုနေရာချထားရန် MySQL အမှားအယွင်းတစ်ခုသို့ပြန်ပို့ပေးလိမ့်မည်။
အသုံးများသောအမှားများတွင် -
သိုလှောင် ထား သည့်လုပ်ထုံးလုပ်နည်းမရှိပါ - သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းအမည်ကိုမဖန်တီးပါကသို့မဟုတ်မဖန်တီးပါ က ,
Parameter type mismatch : သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းသည်ကိန်းဂဏန်းများကိုမျှော်လင့် ထား လျှင်,
အကယ်. အသေးစိတ်အချက်အလက်များကိုအသေးစိတ်ဖော်ပြရန်လိုအပ်ပါက MySQL ၏ ပြပွဲလုပ်ထုံးလုပ်နည်းအနေအထားကို သုံး. သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများကိုစစ်ဆေးရန်အမှားအယွင်းများ ကိုပြသ နိုင်သည်။
<?php
$result = $conn->query("SHOW PROCEDURE STATUS WHERE Name = 'get_user_info'");
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းအဆင့်: " . $row["Db"] . " - " . $row["Name"] . "\n";
}
} else {
echo "ရှာဖွေတွေ့ရှိသည့်လုပ်ထုံးလုပ်နည်းဆိုင်ရာအချက်အလက်များကိုရှာမတွေ့ပါ。\n";
}
?>
ဤနည်းလမ်းများမှတစ်ဆင့်သင်၏ပြ problems နာများကိုရှာဖွေရန်အတွက်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများနှင့် ပတ်သက်. ပိုမိုသောသတင်းအချက်အလက်များကိုသင်ရရှိနိုင်သည်။
MySQLI_STMT :: $ အမှားသည် သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းများခေါ်ဆိုမှုများပြုလုပ်သောအခါအမှားပြုမိခြင်းလုပ်ငန်းစဉ်ကိုသိသိသာသာရိုးရှင်းစေသည်။ ၎င်းသည် developer များကိုအသေးစိတ်အမှားအချက်အလက်များဖြင့်ပေးပြီးပြ problems နာများကိုလျင်မြန်စွာဖော်ထုတ်ရန်နှင့်၎င်းတို့ကိုပြင်ဆင်ရန်ကူညီသည်။ ဒေတာဘေ့စ်၏ပြည်နယ်စုံစမ်းမှုနှင့်အမှားမှတ်တမ်းကိုပေါင်းစပ်ပြီးသိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းခေါ်ဆိုမှု၏ပြ problem နာကိုပိုမိုထိရောက်စွာဖြေရှင်းနိုင်သည်။