PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများကိုကိုင်တွယ်သောအခါအချက်အလက်များကိုဖမ်းယူရန်နှင့်လုပ်ငန်းစဉ်ကိုဖမ်းယူရန်အလွန်အရေးကြီးသည်။ အထူးသဖြင့် MySQL database, MySQLI_STMT :: $ အမှား သည် SQL query error uros များကိုရယူရန်အသုံးပြုသောပစ္စည်းတစ်ခုဖြစ်သည်။ ၎င်းသည် developer များရှာဖွေတွေ့ရှိရန်နှင့်ပြ problems နာများကိုအချိန်မီဖြေရှင်းနိုင်ရန်ကူညီနိုင်သည်။ ယူနစ်စမ်းသပ်ခြင်းပတ် 0 န်းကျင်တွင်သတင်းအချက်အလက်များကိုဖမ်းယူခြင်းနှင့်လုပ်ငန်းစဉ်များကိုဖမ်းယူရန်နှင့်လုပ်ငန်းစဉ်ဆိုင်ရာအချက်အလက်များကိုဖြည့်ဆည်းရန်နှင့်ဒေတာဘေ့စ်လုပ်ငန်းများ၏ debugging နှင့် optimization ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။
ဤဆောင်းပါးသည် MySQLI_STMT ကိုမည်သို့ဖမ်းယူရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ : $ error error error error error message တွင် PHP ယူနစ်စမ်းသပ်မှုများဖြင့်သင့်အားပြေဒူခြင်းဆိုင်ရာအကြံပြုချက်များကိုပေးထားသည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုတစ်ခုကိုဖန်တီးရန်နှင့် SQL query ကို execute လုပ်ရန်လိုအပ်သည်။ ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါအမှားတစ်ခုဖြစ်ပါက MySQLI_STMT :: $ အမှားသည် အမှားအယွင်းကိုသိမ်းဆည်းလိမ့်မည်။ MySQLI_STMT :: $ အမှားကို မည်သို့ဖမ်းယူရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
<?php
// ကျနော်တို့ကတစ် ဦး ထူထောင်ပါပြီဆိုပါစို့MySQLiဆက်
$mysqli = new mysqli("localhost", "user", "password", "database");
// 检查ဆက်是否成功
if ($mysqli->connect_error) {
die("ဆက်失败: " . $mysqli->connect_error);
}
// ပြင်ဆင်ထားSQLစုံစမ်းမှုကြေညာချက်
$sql = "SELECT * FROM nonexistent_table"; // ရည်ရွယ်ချက်ရှိရှိမှားယွင်းသောစုံစမ်းမှု
// ကြိုတင်ပြင်ဆင်မှုများ
$stmt = $mysqli->prepare($sql);
if ($stmt === false) {
// preprocessing ပျက်ကွက်လျှင်,အမှားများကိုဖမ်း
echo "ကြိုတင်ပြင်ဆင်မှုများ错误: " . $mysqli->error;
} else {
// တစ် ဦး စုံစမ်းမှု execute
$stmt->execute();
// Execution ရလဒ်များကိုစစ်ဆေးပါ
if ($stmt->errno) {
// ဖမ်းယူခြင်းနှင့် output အမှားမက်ဆေ့ခ်ျများ
echo "Execute အမှား: " . $stmt->error;
} else {
echo "အောင်မြင်သောစုံစမ်းမှု";
}
}
// 关闭ဆက်
$stmt->close();
$mysqli->close();
?>
ဒီဥပမာမှာကျွန်တော်တို့ဟာမတည်မငြိမ်ဖြစ်တဲ့ဇတ် မပါတဲ့ ဇယားအမည်ကိုတမင်တကာသုံးတယ်, အဲဒါကရှာဖွေမှုကိုကျရှုံးစေလိမ့်မယ်။ MySQLI_STMT :: $ အမှား နှင့် MySQLI_STMT :: MySQLI_STMT :: $ errno , အမှားမက်ဆေ့ခ်ျကိုဖမ်းယူနိုင်ပြီ။
ယူနစ်စစ်ဆေးမှုပတ်ဝန်းကျင်တွင်ကျွန်ုပ်တို့သည် Phpunit မူဘောင်ကိုစမ်းသပ်ရန်သုံးနိုင်သည်။ MySQLI_STMT :: $ အမှားအယွင်း အမှားမက်ဆေ့ခ်ျကိုဖမ်းယူရန် Phpunit ၏အခိုင်အမာဆိုသည့်နည်းလမ်းကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။ ဤတွင်အခြေခံယူနစ်စမ်းသပ်မှုဥပမာဖြစ်သည်။
<?php
use PHPUnit\Framework\TestCase;
class DatabaseTest extends TestCase
{
private $mysqli;
protected function setUp(): void
{
// 设置数据库ဆက်
$this->mysqli = new mysqli("localhost", "user", "password", "database");
}
public function testQueryExecutionError()
{
// ရည်ရွယ်ချက်အပေါ်မမှန်ကန်ကြောင်းမေးမြန်းခြင်းရေးသားခြင်း
$sql = "SELECT * FROM nonexistent_table";
$stmt = $this->mysqli->prepare($sql);
// 确保ကြိုတင်ပြင်ဆင်မှုများ没有错误
$this->assertFalse($stmt === false, "ကြိုတင်ပြင်ဆင်မှုများ失败: " . $this->mysqli->error);
// တစ် ဦး စုံစမ်းမှု execute
$stmt->execute();
// ကွပ်မျက်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
$this->assertEquals(0, $stmt->errno, "စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါ: " . $stmt->error);
}
protected function tearDown(): void
{
// 关闭数据库ဆက်
$this->mysqli->close();
}
}
?>
ဤယူနစ်စမ်းသပ်မှုတွင်ကျွန်ုပ်တို့သည်မအောင်မြင်သောဒေတာဘေ့စ်လည်ပတ်မှုကိုတုပရန်မမှန်ကန်ကြောင်းမေးမြန်းခြင်းကိုတမင်တကာအသုံးပြုခဲ့သည်။ $ THE-> THAYFALSE နှင့် $ THAYFALSE နှင့် $ THAYEFARES နည်းလမ်းများသည် SQL query အောင်မြင်စွာကွပ်မျက်ခံရကြောင်းအတည်ပြုရန်အသုံးပြုသည်။ အမှားတစ်ခုဖြစ်ပါကကျွန်ုပ်တို့အား Debugug ကိုကူညီရန်သက်ဆိုင်ရာအမှားအယွင်းကိုထုတ်ပေးလိမ့်မည်။
အမှားသတင်းအချက်အလက်များကိုတိုက်ရိုက်ထုတ်လွှင့်မှုဆိုင်ရာပတ်ဝန်းကျင်တွင်တိုက်ရိုက်ထုတ်လွှခြင်းအပြင်နောက်ပိုင်းတွင်ကြည့်ရှုရန်မှတ်တမ်းတွင်လည်းအမှားအချက်အလက်များကိုလည်းမှတ်တမ်းတင်နိုင်သည်။ အောက်ပါဥပမာသည် MySQLI_STMT ကို log လုပ်ရမည်ကိုပြသသည်။
<?php
// ကျနော်တို့ကတစ် ဦး ထူထောင်ပါပြီဆိုပါစို့MySQLiဆက်
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်失败: " . $mysqli->connect_error);
}
$sql = "SELECT * FROM nonexistent_table";
$stmt = $mysqli->prepare($sql);
if ($stmt === false) {
error_log("ကြိုတင်ပြင်ဆင်မှုများ错误: " . $mysqli->error, 3, "/var/log/mysql_errors.log");
} else {
$stmt->execute();
if ($stmt->errno) {
error_log("Execute အမှား: " . $stmt->error, 3, "/var/log/mysql_errors.log");
}
}
$stmt->close();
$mysqli->close();
?>
ဤဥပမာတွင် error_log function ကို /Var/Log/mysqlqlqlqlqlqlqlqls.log ဖိုင်သို့အမှားအယွင်းများကိုမှတ်တမ်းတင်ရန်အသုံးပြုသည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အမှားအချက်အလက်များကိုမဆုံးရှုံးနိုင်ကြောင်းသေချာစေရန်နှင့် Post-analysis ကိုအဆင်ပြေစွာပြုလုပ်နိုင်သည်။
အကျဉ်းချုပ်
MySQLI_STMTT ကို အသုံးပြု. အမှားအယွင်းများကိုဖမ်းယူခြင်းနှင့်ကိုင်တွယ်ခြင်းဖြင့် developer များကဒေတာဘေ့စ်စစ်ဆင်ရေးများကိုပိုမိုလွယ်ကူစွာ debug လုပ်ရန်နှင့် outzug လုပ်နိုင်သည်။ PHP ယူနစ်စမ်းသပ်မှုများတွင် Phpunit Framework ကို အသုံးပြု. အမှားများကိုဖမ်းရန်နှင့်ကျွန်ုပ်တို့၏ကျင့် 0 တ်အား 0 င်ရောက်မှုကိုပိုမိုတိုးတက်စေရန်အခိုင်အမာပြုလုပ်နိုင်သည်။ ထို့အပြင်သစ်ထုတ်လုပ်ခြင်းသည်အလားအလာရှိသောပြ problems နာများကိုခြေရာခံရန်နှင့်ဖြေရှင်းရန်အတွက်ကောင်းမွန်သောအလေ့အကျင့်လည်းဖြစ်သည်။
PHP မှတစ်ဆင့်ကြံ့ခိုင်သောဒေတာဘေ့စ်စစ်ဆင်ရေးကုဒ်ကိုပိုမိုရေးလိုပါကဤအကြံပြုချက်များကိုလေ့လာရန်သေချာပါစေ။