လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: $ အမှားရလဒ်ကို phpunit သို့ပေါင်းစပ်ပါ

MySQLI_STMT :: $ အမှားရလဒ်ကို phpunit သို့ပေါင်းစပ်ပါ

gitbox 2025-05-28

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် MySQLI ကို ဒေတာဘေ့စ်လုပ်ငန်းများအတွက်အသုံးပြုသည့်အခါ MySQLI_STMT :: SQL Execution တွင်အမှားသတင်းအချက်အလက်များကိုရယူရန်အတွက် MySQLI ကိုအသုံးပြုသည့်အခါ MySQLI_STMM :: $ အမှားကို အသုံးပြုသည်။ သို့သော် Phpunit စမ်းသပ်ခြင်းတွင်မမှန်ကန်သော output သည် developer များ debugug ကိုအလိုအလျောက်မအောင်မြင်ပါ။ ထို့ကြောင့်ဤဆောင်းပါးသည် MySQLI_STMTT ကိုမည်သို့ပေါင်းစပ်ရမည်ကိုရှင်းပြပါမည်။

1 ။ အဘယ်ကြောင့်အမှား output ကိုပေါင်းစပ်?

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

MySQLI_STMT :: error error error error error error error error error error error error error message mession ကို phpunit စမ်းသပ်မှု output ကိုပေါင်းစပ်ခြင်းဖြင့် developer လုပ်နိုင်သည်။

  • တိကျသော SQL အမှားမက်ဆေ့ခ်ျများကိုတွေ့မြင်ရန်ပိုမိုလွယ်ကူသည်။

  • စမ်းသပ်မှုပျက်ကွက်သည့်အခါအသေးစိတ်အမှားအမှားများကိုရယူပါ။

  • စမ်းသပ်ခြင်းလုပ်ငန်းစဉ်ကိုတိုးတက်အောင်လုပ်ပြီးစမ်းသပ်ခြင်း၏ထိရောက်မှုကိုတိုးတက်စေသည်။

2 ။ အကောင်အထည်ဖော်မှုအဆင့်များ

MySQLI_STMT :: $ error error error error error message ကို phpunit စမ်းသပ်မှုထဲသို့ 0 င်ရောက်နိုင်ရန်အတွက်အောက်ပါတို့သည်တိကျသောအကောင်အထည်ဖော်မှုအဆင့်များဖြစ်သည်။

2.1 ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုသတ်မှတ်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုတစ်ခုကိုဖန်တီးရန်နှင့်ဒေတာဘေ့စ်စစ်ဆင်ရေးအတွက် MySQLI_STMT အရာဝတ်ထုကိုပြင်ဆင်ရန်လိုအပ်သည်။ ဒေတာဘေ့စ် connection တစ်ခုတည်ဆောက်ရန်နှင့် SQL Query များကိုပြုလုပ်ရန် MySQLI extension ကိုအသုံးပြုသည်။

 <?php
// ဒေတာဘေ့စ် connection configuration ကို
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);

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

// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $userId);

2.2 ရေးသားခြင်းယူနစ်စမ်းသပ်မှု

ထို့နောက်ကျွန်ုပ်တို့သည် Phpunit Test Class ကိုရေးပါ။ စမ်းသပ်မှုနည်းလမ်းတွင်ကျွန်ုပ်တို့သည် SQL query ကို Error query ကို excape လုပ်ပြီး MySQLI_STMT :: အမှားအယွင်းများကို ရယူပါ။ အမှားတစ်ခုဖြစ်ပေါ်ပါက Phpunit စစ်ဆေးမှုရလဒ်များကိုအမှားအယွင်းများထုတ်ပေးပါက။

 <?php
use PHPUnit\Framework\TestCase;

class DatabaseTest extends TestCase
{
    public function testDatabaseQuery()
    {
        global $conn;

        // ကရိယာတန်းဆာ SQL မေးမြန်း
        $userId = 1;
        $stmt->execute();

        // 检查ကရိယာတန်းဆာ是否成功
        if ($stmt->error) {
            // မှတ်တမ်းအမှားမှတ်တမ်းတင် PHPUnit စမ်းသပ် output ကို
            $this->fail("SQL အမှား: " . $stmt->error);
        } else {
            $result = $stmt->get_result();
            $this->assertNotEmpty($result);
        }
    }
}

2.3 ဒေတာဘေ့စအမှားများကိုကိုင်တွယ်ခြင်းနှင့်စိစစ်အတည်ပြုလုပ်ဆောင်ပါ

အထက်ဖော်ပြပါကုဒ်များတွင် SQL querc သည် execute လုပ်ရန်ပျက်ကွက်ပါက ဒေါ်လာ stmt-> အမှားသည် အမှားအယွင်းတစ်ခုသို့ပြန်ပို့နိုင်ပြီး၎င်းသည် phpunit စမ်းသပ်မှု၏ပျက်ကွက်မှု () နည်းလမ်းကို () နည်းလမ်းဖြင့်ထုတ်ပေးသည်။ ဤနည်းအားဖြင့်စမ်းသပ်မှုပျက်ကွက်သည့်အခါစမ်းသပ်မှုပျက်ကွက်မှု၏အချက်ပြချက်များကိုကျွန်ုပ်တို့တွေ့ရုံသာမကတိကျသော SQL Error အမှားများကိုလည်းတွေ့မြင်နိုင်သည်။

2.4 အသေးစိတ်အမှားမှတ်တမ်း

အမှားသတင်းအချက်အလက်များပိုမိုချမ်းသာစေရန်ကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုတိုးချဲ့နိုင်သည်။ ဥပမာအားဖြင့်, အမှားအချက်အလက်များကို log file ထဲသို့သိမ်းဆည်းပါသို့မဟုတ်သတ်မှတ်ထားသော URL သို့အမှားအယွင်းတစ်ခုပို့ပါ ( gitbox.net domain name ကိုအစားထိုးပါ)

 <?php
// အမှား日志记录
if ($stmt->error) {
    error_log("数据库မေးမြန်း失败: " . $stmt->error, 3, "/var/log/php_errors.log");
    // 可以将အမှား信息发送到远程服务器
    file_get_contents("https://gitbox.net/log.php?error=" . urlencode($stmt->error));
}

ဤနည်းအားဖြင့် Phpunit စမ်းသပ်မှုများတွင်အမှားအချက်အလက်များကိုထုတ်ယူရုံသာမက log file တစ်ခုသို့မဟုတ်နောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ပြုပြင်ခြင်းအတွက် remote server သို့အမှားအချက်အလက်များကိုလည်းသိမ်းဆည်းနိုင်သည်။

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

MySQLI_STMT :: $ error error error error order obput output ကို phpunit စမ်းသပ်မှုသို့ကျွန်ုပ်တို့စစ်ဆေးမှုပျက်ကွက်သောအခါအသေးစိတ်အချက်အလက်များကိုကျွန်ုပ်တို့ရယူနိုင်သည်။ ဤချဉ်းကပ်မှုသည်သမားရိုးကျ SQL Queries အတွက်သင့်တော်ရုံသာမကအခြားဒေတာဘေ့စ်လုပ်ငန်းများအတွက်လည်းဖြစ်သည်။ သစ်ထုတ်လုပ်ခြင်းနှင့်ဝေးလံခေါင်သီသောအစီရင်ခံခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အနာဂတ်ခွဲခြမ်းစိတ်ဖြာမှုအတွက်အမှားအချက်အလက်များကိုမှတ်တမ်းတင်နိုင်သည်။