လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: အမှားအယွင်းများကို အသုံးပြု. ဒေတာဘေ့စ်အမှားအခင်းအကျင်းကိုရေးပါ

MySQLI_STMT :: အမှားအယွင်းများကို အသုံးပြု. ဒေတာဘေ့စ်အမှားအခင်းအကျင်းကိုရေးပါ

gitbox 2025-05-28

ဒေတာဘေ့စ်လုပ်ငန်းများသည်အထူးသဖြင့် MySQL database နှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ PHP applications များကိုတီထွင်ထုတ်လုပ်ရန်မလွှဲမရှောင်သာအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ အချက်အလက်များကိုထည့်သွင်းခြင်း, မွမ်းမံခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဒေတာဘေ့စ်လုပ်ငန်းများ၏ချောမွေ့မှုများကိုချောမွေ့စွာလုပ်ဆောင်နိုင်ရန်အတွက်ထိရောက်သောအမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုလိုအပ်သည်။

MySQLI_STMT :: $ အမှား သည် PHP MySQLI extension မှထောက်ပံ့ပေးသော PHP MySQLI extension မှထောက်ပံ့ပေးသော PHP MySQLI extension မှထောက်ပံ့ပေးသောအလွန်အသုံးဝင်သောပိုင်ဆိုင်မှုဖြစ်သည်။ ဤဆောင်းပါးတွင် MySQLI_STMT :: Database error assertions များကိုရေးရန်နှင့်ဒေတာဘေ့စ်လုပ်ငန်းများ၌အမှားအယွင်းများကိုထိရောက်စွာကိုင်တွယ်ရန် $ အမှားအယွင်းကို ကျွန်ုပ်တို့ဆွေးနွေးမည်။

1 ။ ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ

ဒေတာဘေ့စ်လုပ်ငန်းများကိုမရေးမီ MySQLI မှတဆင့် MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်ရန်လိုအပ်သည်။ MySQLI_Connect () သို့မဟုတ် Object-Oriented နည်းလမ်းမှတဆင့်ဆက်သွယ်နိုင်သည်။

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test_db';

// အရာဝတ်ထု -oriented ချဉ်းကပ်မှုသုံးပြီးဆက်သွယ်မှုများကိုဖန်တီးပါ
$mysqli = new mysqli($host, $user, $password, $database);

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
?>

2 ။ SQL query ကို execute လုပ်ရန် MySQLI_STMT ကို သုံးပါ

ဒေတာဘေ့စ်ကိုအောင်မြင်စွာချိတ်ဆက်ပြီးတာနဲ့နောက်တစ်ဆင့်မှာ SQL query ကိုပြင်ဆင်ရန်ဖြစ်သည်။ ထိရောက်သောအမှားအယွင်းများအတွက်ပြင်ဆင်ထားသောထုတ်ပြန်ချက်များကိုအသုံးပြုရန်အကြံပြုသည်။ Preprocessing ထုတ်ပြန်ချက်များသည် SQL ဆေးထိုးခြင်းကိုတားဆီးရုံသာမကစုံစမ်းမှုစွမ်းအားစွမ်းဆောင်ရည်ကိုလည်းတိုးတက်စေသည်။

SQL Queries ကို execute လုပ်ရန်နှင့်ဖြစ်နိုင်ချေအမှားများကိုကိုင်တွယ်ရန် MySQLI_STMT ကို မည်သို့အသုံးပြုရမည်နည်း။

 <?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

// Preprocessing ထုတ်ပြန်ချက်များကိုသုံးပါ
$stmt = $mysqli->prepare($sql);

if ($stmt === false) {
    die("Preprocessing ကြေညာချက်အမှား: " . $mysqli->error);
}

// parameters တွေကိုချည်ထား
$username = 'john_doe';
$email = '[email protected]';
$stmt->bind_param('ss', $username, $email);

// Execution ကြေငြာချက်
$stmt->execute();

// Execution ရလဒ်များကိုစစ်ဆေးပါ
if ($stmt->error) {
    die("Execute အမှား: " . $stmt->error);
} else {
    echo "ဒေတာသွင်းအောင်မြင်စွာ!";
}
?>

3 ။ အမှားအခိုင်အမာနှင့်ခြွင်းချက်ကိုင်တွယ်

ဖွံ့ဖြိုးရေးစဉ်အတွင်းအမှားများသည်အလွန်အရေးကြီးပြီးပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန်နှင့်ဖြေရှင်းရန်ကျွန်ုပ်တို့အားကူညီသည်။ MySQLI_STMT :: အမှားအခိုင်အမာပြုလုပ်ရန် $ အမှားကို ကျွန်ုပ်တို့ပေါင်းစပ်နိုင်သည်။ ဒေတာဘေ့စ်လည်ပတ်မှုမအောင်မြင်ပါကပရိုဂရမ်ကိုချက်ချင်းရပ်တန့်ပါ။

 <?php
function assertQuerySuccess($stmt) {
    if ($stmt->error) {
        throw new Exception("ဒေတာဘေ့စ်စစ်ဆင်ရေးမအောင်မြင်ပါ: " . $stmt->error);
    }
}

try {
    $sql = "INSERT INTO users (username, email) VALUES (?, ?)";
    $stmt = $mysqli->prepare($sql);
    assertQuerySuccess($stmt); // အမှားတစ်ခုရှိလျှင်,ခြွင်းချက်ပစ်

    $username = 'jane_doe';
    $email = '[email protected]';
    $stmt->bind_param('ss', $username, $email);
    $stmt->execute();

    assertQuerySuccess($stmt); // 再次Execution ရလဒ်များကိုစစ်ဆေးပါ
    echo "ဒေတာသွင်းအောင်မြင်စွာ!";
} catch (Exception $e) {
    echo "အမှား: " . $e->getMessage();
}
?>

အထက်ဖော်ပြပါကုဒ်များတွင် courturySuccess () function သည်ဒေတာဘေ့စ်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိစစ်ဆေးသည်။ အကယ်. စစ်ဆင်ရေးမအောင်မြင်ပါက၎င်းသည်လိုအပ်ပါကကျွန်ုပ်တို့အနေဖြင့်ဖမ်းမိနိုင်သည့်ခြွင်းချက်တစ်ခုကိုပစ်ချနိုင်သည်။

4 ။ ကွဲပြားခြားနားသောအမှားအမျိုးအစားများကိုကိုင်တွယ်

တစ်ခါတစ်ရံဒေတာဘေ့စ်လုပ်ငန်းများကျရှုံးရန်အကြောင်းပြချက်များစွာရှိနိုင်သည်။ ဥပမာအားဖြင့်၎င်းသည် SQL syntax အမှားတစ်ခု, ဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problem နာတစ်ခုသို့မဟုတ်ဆာဗာပျက်မှုတစ်ခုဖြစ်နိုင်သည်။ MySQLI_STMT :: $ error property တွင်အမှားအယွင်းများကိုစစ်ဆေးခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောအမှားအယွင်းများပေါ်တွင် အခြေခံ. သက်ဆိုင်ရာအစီအမံများကိုယူနိုင်သည်။

 <?php
if ($stmt->error) {
    // 处理特定的အမှား
    switch ($stmt->errno) {
        case 1062:
            echo "အမှား:ပုံတူပွား!";
            break;
        case 1049:
            echo "အမှား:အမည်မသိဒေတာဘေ့စ!";
            break;
        default:
            echo "数据库အမှား: " . $stmt->error;
    }
}
?>

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

MySQLI_STMT :: Database အမှားကိုင်တွယ်မှုအတွက်ဒေါ်လာအမှားအယွင်းကို အသုံးပြုခြင်းသည်ပြ problems နာများကိုဖြေရှင်းနိုင်ရန်နှင့်ဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်သောအခါကျွန်ုပ်တို့၏လျှောက်လွှာများသည်လျင်မြန်စွာတုံ့ပြန်နိုင်ပြီးသင့်လျော်သောအစီအမံများကိုဖြေရှင်းနိုင်သည်။ ကောင်းသောအမှားအခိုင်အိနှင့်ခြွင်းချက်ကိုင်တွယ်ယန္တရားများမှတဆင့် program ၏ကြံ့ခိုင်မှုနှင့်ထိန်းသိမ်းမှုသိသိသာသာတိုးတက်လာသည်။

ဤဆောင်းပါးတွင် MySQLI_STMT :: အမှားအခင်းအကျင်းအတွက် $ အမှား , ဒေတာဘေ့စ်စစ်ဆင်ရေးများတွင်သာမန်အမှားများကိုမည်သို့ကိုင်တွယ်ရမည်နည်း, ဤဆောင်းပါးသည်သင်၏ PHP စီမံကိန်းတွင်ဒေတာဘေ့စ်နှင့်သက်ဆိုင်သောအမှားများကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်ရန်ကူညီလိမ့်မည်ဟုမျှော်လင့်ပါသည်။