လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT ၏ပုံမှန်လျှောက်လွှာကိုသရုပ်ပြရန်သင်ယူမှုကိစ္စကိုရေးပါ။ : $ အမှား

MySQLI_STMT ၏ပုံမှန်လျှောက်လွှာကိုသရုပ်ပြရန်သင်ယူမှုကိစ္စကိုရေးပါ။ : $ အမှား

gitbox 2025-05-28

PHP ပရိုဂရမ်တွင် MySQLI extension ကို MySQL Database ကို 0 င်ရောက်ရန်အသုံးပြုသည်။ MySQLI_STMT :: $ အမှား သည် MySQLI extension တွင် SQL ထုတ်ပြန်ကြေငြာချက်တွင်ဖြစ်ပေါ်သောအမှားအချက်အလက်များကိုရရှိရန်အတွက်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ဤဆောင်းပါးသည် MySQLI_STMT ကိုမည်သို့အသုံးပြုရမည်ကိုသရုပ်ပြရန်သင်ယူမှုကိစ္စကိုရေးရန်သင်ယူမှုကိစ္စကိုရေးပါမည်။

1 ။ နောက်ခံဗဟုသုတ - MySQLI_STMT :: $ အမှား လုပ်ဆောင်ချက်

ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါအမှားအယွင်းအမျိုးမျိုးကိုကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။ MySQLI_STMT :: $ အမှား လုပ်ဆောင်ချက်သည် SQL ထုတ်ပြန်ကြေငြာချက်နှင့်သက်ဆိုင်သောအမှားအချက်အလက်များကိုဖမ်းယူရန်နည်းလမ်းတစ်ခုဖြစ်သည်။ နောက်ဆုံး SQL ထုတ်ပြန်ကြေငြာချက်အရဖြစ်ပွားခဲ့သောအမှားအယွင်းရှိအမှားအယွင်းများဖော်ပြချက်ပါ 0 င်သည့် string ကိုပြန်လည်ရောက်ရှိစေသည်။

MySQLI_STMM ၏ syntax :: $ အမှား -

 public string mysqli_stmt::$error;
  • ပြန်လာတန်ဖိုး - SQL ကြေငြာချက်ကိုအကောင်အထည်ဖော်သောအခါအမှားမက်ဆေ့ခ်ျကိုကိုယ်စားပြုသည့် string ကိုကိုယ်စားပြုသည်။ အမှားအယွင်းမရှိပါကအချည်းနှီးသော string ကိုပြန်ပို့သည်။

2 ။ သင်ယူခြင်းကိစ္စ - MySQLI_STMT ၏လျှောက်လွှာကိုသရုပ်ပြပါ

MySQLI_STMT :: မှတစ်ဆင့် MySQL Questies တွင်အမှားအယွင်းများကိုမည်သို့ဖမ်းဆီးရမည်ကိုပြသနိုင်သည့်ရိုးရှင်းသော PHP PHOP ကိုကျွန်ုပ်တို့ရေးပါမည်။

Code Perfection:

 <?php
// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ
$host = 'localhost';
$user = 'root';
$password = '';
$dbname = 'test_db';

$conn = new mysqli($host, $user, $password, $dbname);

// ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုစစ်ဆေးပါ
if ($conn->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}

// ဒေတာထည့်ပါ SQL စုံစမ်းမှုကြေညာချက်
$sql = "INSERT INTO users (name, email) VALUES (?, ?)";

// အသုံးပြု prepare() လုပ်ဆောင်ချက်ပြင်ဆင်မှု SQL အသေအချာပေြာဆိုချက်
$stmt = $conn->prepare($sql);

// 检查အသေအချာပေြာဆိုချက်是否ပြင်ဆင်ထား成功
if (!$stmt) {
    die("ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်失败: " . $conn->error);
}

// parameters တွေကိုချည်ထား
$name = 'John Doe';
$email = '[email protected]';  // အသုံးပြု gitbox.net တစ် ဦး မေးလ်ဒိုမိန်းအမည်အဖြစ်
$stmt->bind_param("ss", $name, $email);

// ကရိယာတန်းဆာ SQL မေးမြန်း
if (!$stmt->execute()) {
    // 如果ကရိယာတန်းဆာ失败,output error message
    echo "ကရိယာတန်းဆာမေးမြန်း时出错: " . $stmt->error;
} else {
    echo "ဒေတာသွင်းအောင်မြင်စွာ!";
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$stmt->close();
$conn->close();
?>

code parsing:

  1. ဒေတာဘေ့စ်ဆက်သွယ်မှု - ပထမအချက်မှာ MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုတစ်ခုဖန်တီးသည်။ ဆက်သွယ်မှုသည်မအောင်မြင်ပါက Connection Error Message ကိုထုတ်လွှင့်ရန်နှင့်ကွပ်မျက်မှုကိုအဆုံးသတ်ရန် Die () ကို သုံးပါ။

  2. SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ပါ ။ ကျွန်ုပ်တို့သည် SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ရန် ပြင်ဆင်ခြင်း () function ကိုအသုံးပြုသည်။ ပြင်ဆင်မှုလုပ်ငန်းစဉ်အတွင်းအမှားတစ်ခုဖြစ်ပါက MySQL ဆက်သွယ်မှုအဆင့်တွင်အမှားတစ်ခုကိုထုတ်ယူရန် $ conn-> အမှားကို သုံးပါ။

  3. Bind Parametersents : SQL ထုတ်ပြန်ချက်များတွင် parameter များကို bind_param () function မှတဆင့် bind ။ ဤတွင်ကျွန်ုပ်တို့သည် အမည်များ နှင့် အီးမေးလ်ကို parameters များအဖြစ်ဖြတ်သန်းသွားသည်။

  4. Execute query : SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါအမှားတစ်ခုဖြစ်ပါကကျွန်ုပ်တို့သည် MySQLI_STMT :: output ကိုဖမ်းယူရန် $ အမှားကို အသုံးပြုသည်။

  5. Collection Connection : စစ်ဆင်ရေးပြီးစီးပြီးနောက် stmt နှင့် database connection ကိုပိတ်ပါ။

ညွှန်ကြားချက်များကိုကိုင်တွယ်ဖြေရှင်းခြင်း

  • ကြိုတင်ပြင်ဆင်မှုအမှား - SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်သောအခါ settax အမှားများသို့မဟုတ်အခြားပြ problems နာများကိုပြင်ဆင်သောအခါ ပြင်ဆင်ခြင်း () function သည် မှားယွင်းစွာ ပြန်ယူနိုင်သည်

  • Capture Execute Error : SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါအမှားတစ်ခုဖြစ်ပါက execute () function ကိုပြန်ပို့ခြင်း မှားယွင်းသော နှင့် MySQLI_STMT ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုချက်ချင်းသတင်းပို့နိုင်ပြီးသက်ဆိုင်ရာအစီအမံများကိုပြုလုပ်နိုင်သည်။

  • သစ်ထုတ်လုပ်ခြင်း - ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်လုံခြုံရေးမက်ဆေ့ခ်ျများသို့ 0 င်ရောက်ခြင်းကို 0 င်ရန်အကြံပြုသည်။

3 ။ နောက်ထပ် optimization: SQL အမှားများကိုဖမ်းယူခြင်းနှင့်သူတို့ကိုအသေးစိတ်ကိုင်တွယ်

အမှားကိုင်တွယ်မှုအတွက်အရောင်းအဝယ်ငွေပေးငွေယူကိုသုံးပါ

အရောင်းအ 0 ယ်များကိုအသုံးပြုခြင်းသည် SQL ထုတ်ပြန်ချက်များပါ 0 င်သည့်အခါကျွန်ုပ်တို့၏အချက်အလက်များတွင်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ကူညီနိုင်သည်။ အကယ်. စုံစမ်းမှုမအောင်မြင်ပါကတစ်စိတ်တစ်ပိုင်းမွမ်းမံမှုများအောင်မြင်ရန်နှင့်အခြားအစိတ်အပိုင်းများမအောင်မြင်သောအခြားအစိတ်အပိုင်းများကိုရှောင်ရှားရန်ငွေပေးငွေယူကိုကျွန်ုပ်တို့ပြန်လှိမ့်နိုင်သည်။

 <?php
$conn->begin_transaction();

try {
    // ကရိယာတန်းဆာ多个 SQL အသေအချာပေြာဆိုချက်
    $stmt1 = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
    $stmt1->bind_param("ss", $name, $email);
    if (!$stmt1->execute()) {
        throw new Exception("ကရိယာတန်းဆာ插入用户时出错: " . $stmt1->error);
    }

    $stmt2 = $conn->prepare("UPDATE users SET status = ? WHERE email = ?");
    $stmt2->bind_param("ss", $status, $email);
    if (!$stmt2->execute()) {
        throw new Exception("ကရိယာတန်းဆာ更新用户状态时出错: " . $stmt2->error);
    }

    // တင်သွင်းမှုတင်သွင်း
    $conn->commit();
} catch (Exception $e) {
    // အမှားတစ်ခုဖြစ်ပေါ်လျှင်,ပြန်အရောင်းအလှိမ့်
    $conn->rollback();
    echo "ငွေပေးငွေယူပျက်ကွက်: " . $e->getMessage();
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$conn->close();
?>

code parsing:

  1. ငွေပေးငွေယူ : ကျွန်ုပ်တို့သည် စတင်ခြင်းကိုစတင်ရန် စတင်ရန်စတင်အသုံးပြုမှုကိုစတင်ရန်, စစ်ဆင်ရေးတစ်ခုသည်အောင်မြင်မှုသို့မဟုတ်ပျက်ကွက်ကြောင်းသေချာစေရန်။

  2. အမှားဖမ်းခြင်း - ခြွင်းချက်များကိုဖမ်းရန် Try-catch statement ကိုသုံးပါ။ SQL အမှားတစ်ခုဖြစ်သောအခါကျွန်ုပ်တို့သည်ငွေပေးငွေယူကိုပြန်လှည့်ပြီး ခြွင်းချက် မှတဆင့်သတ်သတ်မှတ်မှတ်အမှားသတင်းအချက်အလက်များကိုချမှတ်ခြင်းကိုပြန်လှိမ့်ချလိုက်သည်။

  3. ကျူးလွန်ခြင်းသို့မဟုတ်ဖြန့်ချိမှု - စစ်ဆင်ရေးအားလုံးအောင်မြင်ပါကငွေပေးချေမှုကိုကျူးလွန်ရန် () ကတိကဝတ်ကို အသုံးပြုသည်။ အမှားတစ်ခုဖြစ်ပါကငွေပေးချေမှုကိုထုတ်ပြန်ရန် Rollback () ကို သုံးပါ။

4 ။ အကျဉ်းချုပ်

MySQLI_STMT :: MySQL ဒေတာဘေ့စ်လုပ်ငန်းများတွင် Developer များကအမှားများကို SQL ထုတ်ပြန်ကြေငြာချက်တွင်အမှားအယွင်းများကိုလျင်မြန်စွာခွဲခြား သတ်မှတ်. ကိုင်တွယ်ဖြေရှင်းရန်အတွက်အဓိကအခန်းကဏ် plays မှပါ 0 င်သည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်ကျွန်ုပ်တို့သည်အမှားကိုင်တွယ်သည့်နည်းစနစ်များကိုအပြည့်အဝအသုံးပြုခြင်း,

ထို့အပြင်ငွေပေးငွေယူအပြောင်းအလဲနဲ့အမှားလုပ်ခြင်းယန္တရားများမှတဆင့်ကျွန်ုပ်တို့သည်သမာဓိစောင့်သိမှုနှင့်ကိုက်ညီမှုရှိစေရန်အတွက်စနစ်၏ယုံကြည်စိတ်ချရမှုကိုတိုးတက်စေနိုင်သည်။