အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်မေးမြန်းချက်များကိုအကောင်အထည်ဖော်သည့်အခါကျွန်ုပ်တို့သည်မေးမြန်းမှုအောင်မြင်မှုရှိမရှိကိုကျွန်ုပ်တို့မကြာခဏဆုံးဖြတ်ရန်လိုအပ်သည်။ အကယ်. မေးမြန်းမှုမအောင်မြင်ပါက၎င်းသည်စနစ်၏ပုံမှန်လည်ပတ်မှုကိုအကျိုးသက်ရောက်စေရုံသာမကပရိုဂရမ်ချွင်းချက်များသို့မဟုတ်အချက်အလက်ရှေ့နောက်မညီမှုများကိုလည်း ဦး ဆောင်လမ်းပြပေးနိုင်လိမ့်မည်။ ထို့ကြောင့်ဤပျက်ကွက်မှုများနှင့်ရင်ဆိုင်ဖြေရှင်းရန်ထိရောက်သောအမှားခံနိုင်ရည်ရှိသောစနစ်များကိုလက်ခံရန်အလွန်အရေးကြီးသည်။ MySQLI_STMT :: $ အမှား လုပ်ဆောင်ချက်သည် developer များကို SQL query underures နှင့်ပတ်သက်သည့်အသေးစိတ်အချက်အလက်များကိုရယူရန်ကူညီနိုင်ပြီးစနစ်၏ပုံမှန်လည်ပတ်မှုကိုပြန်လည်ရယူရန်သက်ဆိုင်ရာအစီအမံများကိုရယူရန်ကူညီနိုင်သည်။
MySQLI_STMT :: $ အမှားသည် MySQLI ရှိ MySQLI_STMT အတန်းအစား၏ပိုင်ဆိုင်မှုဖြစ်သည်။ SQL ကြေငြာချက်ကိုအကောင်အထည်ဖော်ပြီးနောက် MySQL query ၏အမှားအယွင်းကိုပြန်ပို့သည်။ စုံစမ်းမှုတွင်အမှားမရှိပါကအချည်းနှီးသော string ကိုပြန်ပို့လိမ့်မည်။ ဤပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုမှတစ်ဆင့်မေးမြန်းမှုပျက်ကွက်သည့်အခါအမှား၏အကြောင်းရင်းကိုကျွန်ုပ်တို့ရနိုင်သည်။
MySQLI_STMT :: MySQL query querures ကိုကိုင်တွယ်ရန် $ အမှားအယွင်းများကို ဤနေရာတွင်ဖော်ပြထားသောအခြေခံဥပမာတစ်ခုဖြစ်သည်။
<?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှု
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'test_db';
$conn = new mysqli($host, $username, $password, $database);
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($conn->connect_error) {
die('ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $conn->connect_error);
}
// ပြင်ဆင်ထား SQL မေးမြန်း
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
// 检查ပြင်ဆင်ထား语句是否成功
if (!$stmt) {
die('SQL 语句ပြင်ဆင်ထား失败: ' . $conn->error);
}
// 绑定参数并执行မေးမြန်း
$id = 1;
$stmt->bind_param("i", $id);
if (!$stmt->execute()) {
// မေးမြန်း失败,output error message
echo 'မေးမြန်း失败: ' . $stmt->error;
} else {
// မေးမြန်း成功,အပြောင်းအလဲများရလဒ်များ
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "အသုံးပြုသူ ID: " . $row['id'] . "<br>";
}
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$stmt->close();
$conn->close();
?>
ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပါ - ပထမ ဦး စွာဒေတာဘေ့စ်ဆက်သွယ်မှုကိုဖန်တီးရန် MySQLI အတန်းကိုသုံးပါ။ ဆက်သွယ်မှုပျက်ကွက်လျှင်အမှားမက်ဆေ့ခ်ျကိုတိုက်ရိုက်ထုတ်လွှင့်ပါကတိုက်ရိုက်ထုတ်လွှင့်ပါ။
SQL ကြေငြာချက်ကိုပြင်ဆင်ပါ ။ ကျွန်ုပ်တို့သည် query statement ကိုပြင်ဆင်ရန် $ conn-> ပြင်ဆင်ရန် ($ sql) ကိုအသုံးပြုသည်။ အကယ်. ကြေငြာချက်ပြင်ဆင်မှုသည်မအောင်မြင်ပါကအမှားအယွင်းကိုရယူရန် $ conn-> အမှားကို သုံးပါ။
Parametersters နှင့် Execute query ကို execute : Query ကိုမကွပ်မျက်မီကျွန်ုပ်တို့သည်စုံစမ်းမှုသတ်မှတ်ချက်များကိုခုတ်လှဲခြင်းနှင့်ကွပ်မျက်စဉ်အတွင်းအောင်မြင်မှုရှိမရှိစစ်ဆေးသည်။ Execute () အယူမှား ပြန်ပို့လျှင်၎င်းသည် query သည်မအောင်မြင်ဟုဆိုလိုသည်, ထို့နောက်အမှားသတင်းအချက်အလက်နှင့်ရလဒ်ကိုရရှိရန် $ stmt-> အမှားကို သုံးပါ။
Query အောင်မြင်မှု - အကယ်. အကယ်. စုံစမ်းမှုအောင်မြင်နိုင်လျှင်ရလဒ်ကို get_result () နှင့်ပြသသည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်အသေးစိတ်အမှားအယွင်းများကိုမကြာခဏကိုင်တွယ်ရန်လိုအပ်သည်။ အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုရိုးရိုးရှင်းရှင်းဖွင့်ထားသော်လည်း,
<?php
// အမှားမှတ်တမ်းလုပ်ဆောင်ချက်
function logError($message) {
$logFile = 'error_log.txt';
$date = date('Y-m-d H:i:s');
file_put_contents($logFile, "[$date] $message\n", FILE_APPEND);
}
// 执行မေးမြန်း时,ပျက်ကွက်လျှင်,log ဖို့အမှားမက်ဆေ့ခ်ျကိုမှတ်တမ်းတင်ပါ
if (!$stmt->execute()) {
logError('မေးမြန်း失败: ' . $stmt->error);
echo 'မေးမြန်း失败,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ。';
}
?>
ဒီဥပမာမှာ query ပျက်ကွက်တဲ့အခါအမှားအယွင်းကို error_log.txt လို့ခေါ်တဲ့ဖိုင်ကို logged လုပ်ပြီးအသုံးပြုသူနဲ့တိုက်ရိုက်ထိတွေ့လိမ့်မည်မဟုတ်ချေ။ အသုံးပြုသူအတွေ့အကြုံကိုမထိခိုက်စေဘဲပြ problems နာများပေါ်ပေါက်လာသောအခါပြ problems နာများပေါ်ပေါက်လာသောအခါ၎င်းသည် developer များကိုရှာဖွေရန်ကူညီသည်။
MySQLI_STMT :: $ အမှားအယွင်းကို အသုံးပြုခြင်းအားဖြင့် MySQL query ပျက်ကွက်ခြင်းနှင့်ဤအမှားအယွင်းများအပေါ် မူတည်. သက်ဆိုင်ရာအစီအမံများကိုကျွန်ုပ်တို့အလွယ်တကူဖမ်းယူနိုင်သည်။ အမှားအယွင်းများသို့မဟုတ်အမှားအယွင်းများကိုမှတ်တမ်းဖိုင်များသို့မှတ်တမ်းတင်ခြင်းသာဖြစ်စေ, စနစ်၏တည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။ အမှားခံနိုင်ရည်ရှိသောချည်နှောင်ခြင်းယန္တရားသည်ပြ problems နာများပေါ်ပေါက်လာသောအခါပြ problems နာများကိုပိုမိုရှာဖွေရန်နှင့်ပြ problems နာများကြုံတွေ့ရသောအခါစနစ်သည်ပြ problems နာများကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်ရန်အတွက်ပြ us နာများကိုလျင်မြန်စွာရှာဖွေရန်နှင့်စနစ်သည်ပြ problems နာများကိုတိုးတက်စေရန်အတွက်ပြ problems နာများကိုလည်းရှာဖွေရန်နှင့်ပြ problems နာများကြုံတွေ့ရနိုင်ကြောင်းအတွက်ပြ use နာများကိုလည်းလျင်မြန်စွာရှာဖွေရန်အတွက်ပြ problems နာများကိုပိုမိုရှာဖွေရန်ကူညီနိုင်သည်။