ဒေတာဘေ့စ်လုပ်ငန်းများသည်အထူးသဖြင့် MySQL database နှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ PHP applications များကိုတီထွင်ထုတ်လုပ်ရန်မလွှဲမရှောင်သာအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ အချက်အလက်များကိုထည့်သွင်းခြင်း, မွမ်းမံခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဖျက်ခြင်း, ဒေတာဘေ့စ်လုပ်ငန်းများ၏ချောမွေ့မှုများကိုချောမွေ့စွာလုပ်ဆောင်နိုင်ရန်အတွက်ထိရောက်သောအမှားကိုင်တွယ်သည့်ယန္တရားတစ်ခုလိုအပ်သည်။
MySQLI_STMT :: $ အမှား သည် PHP MySQLI extension မှထောက်ပံ့ပေးသော PHP MySQLI extension မှထောက်ပံ့ပေးသော PHP MySQLI extension မှထောက်ပံ့ပေးသောအလွန်အသုံးဝင်သောပိုင်ဆိုင်မှုဖြစ်သည်။ ဤဆောင်းပါးတွင် MySQLI_STMT :: Database error assertions များကိုရေးရန်နှင့်ဒေတာဘေ့စ်လုပ်ငန်းများ၌အမှားအယွင်းများကိုထိရောက်စွာကိုင်တွယ်ရန် $ အမှားအယွင်းကို ကျွန်ုပ်တို့ဆွေးနွေးမည်။
ဒေတာဘေ့စ်လုပ်ငန်းများကိုမရေးမီ 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);
}
?>
ဒေတာဘေ့စ်ကိုအောင်မြင်စွာချိတ်ဆက်ပြီးတာနဲ့နောက်တစ်ဆင့်မှာ 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 "ဒေတာသွင်းအောင်မြင်စွာ!";
}
?>
ဖွံ့ဖြိုးရေးစဉ်အတွင်းအမှားများသည်အလွန်အရေးကြီးပြီးပြ 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 သည်ဒေတာဘေ့စ်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိစစ်ဆေးသည်။ အကယ်. စစ်ဆင်ရေးမအောင်မြင်ပါက၎င်းသည်လိုအပ်ပါကကျွန်ုပ်တို့အနေဖြင့်ဖမ်းမိနိုင်သည့်ခြွင်းချက်တစ်ခုကိုပစ်ချနိုင်သည်။
တစ်ခါတစ်ရံဒေတာဘေ့စ်လုပ်ငန်းများကျရှုံးရန်အကြောင်းပြချက်များစွာရှိနိုင်သည်။ ဥပမာအားဖြင့်၎င်းသည် 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;
}
}
?>
MySQLI_STMT :: Database အမှားကိုင်တွယ်မှုအတွက်ဒေါ်လာအမှားအယွင်းကို အသုံးပြုခြင်းသည်ပြ problems နာများကိုဖြေရှင်းနိုင်ရန်နှင့်ဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်သောအခါကျွန်ုပ်တို့၏လျှောက်လွှာများသည်လျင်မြန်စွာတုံ့ပြန်နိုင်ပြီးသင့်လျော်သောအစီအမံများကိုဖြေရှင်းနိုင်သည်။ ကောင်းသောအမှားအခိုင်အိနှင့်ခြွင်းချက်ကိုင်တွယ်ယန္တရားများမှတဆင့် program ၏ကြံ့ခိုင်မှုနှင့်ထိန်းသိမ်းမှုသိသိသာသာတိုးတက်လာသည်။
ဤဆောင်းပါးတွင် MySQLI_STMT :: အမှားအခင်းအကျင်းအတွက် $ အမှား , ဒေတာဘေ့စ်စစ်ဆင်ရေးများတွင်သာမန်အမှားများကိုမည်သို့ကိုင်တွယ်ရမည်နည်း, ဤဆောင်းပါးသည်သင်၏ PHP စီမံကိန်းတွင်ဒေတာဘေ့စ်နှင့်သက်ဆိုင်သောအမှားများကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်ရန်ကူညီလိမ့်မည်ဟုမျှော်လင့်ပါသည်။