လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> debugging attrugging လုပ်သည့်အခါ debug သတင်းအချက်အလက်ကိုဘယ်လိုပုံနှိပ်ထုတ်ဝေမလဲ။

debugging attrugging လုပ်သည့်အခါ debug သတင်းအချက်အလက်ကိုဘယ်လိုပုံနှိပ်ထုတ်ဝေမလဲ။

M66 2025-05-22

MySQLI_STMT :: AttR_Get function ကို အသုံးပြု. MySQLI ကိုကြိုတင်မရွေး preprocessing ထုတ်ပြန်ချက်များကို debing လုပ်သည့်အခါ developer များမကြာခဏမရှင်းလင်းသောပြန်လည်ပြုပြင်ခြင်းတန်ဖိုးများနှင့်ကိုက်ညီမှုမရှိသောအပြုအမူများကဲ့သို့သောပြ problems နာများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ Debugging ထိရောက်မှုကိုတိုးတက်စေရန်နှင့်ပြ problems နာများကိုနေရာချထားရန်အတွက်ကျွန်ုပ်တို့သည်အသေးစိတ် debugging အချက်အလက်များကိုပုံနှိပ်ရန်နည်းလမ်းအချို့ကိုအသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည် MySQLI_STMT :: Attr . Att_get ၏ Debugging Teaching ကိုပိုမိုနားလည်ရန်ကူညီရန် PHP code များကိုပေါင်းစပ်ပါလိမ့်မည်။

1 ။ MySQLI_STMTT :: Att_Get ၏အခန်းကဏ် ence ကိုနားလည်ပါ

MySQLI_STMT :: Attr_get သည် Attribute တန်ဖိုးကိုလက်မှတ်ရေးထိုးပြီးကိုင်တွယ်သည့် attribute value ကိုရရှိရန်အသုံးပြုသည်။ ပုံမှန်အားဖြင့်၎င်းသည် buffered မေးမြန်းချက်များအတွက်ချိန်ညှိချက်များကဲ့သို့သောပြည်တွင်းရေးဂုဏ်သတ္တိများကိုစစ်ဆေးရန်အသုံးပြုသည်။

 $attr_value = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);

ပြန်လာတန်ဖိုးမှာပိုင်ဆိုင်မှု၏လက်ရှိအခြေအနေကိုညွှန်ပြသည့်ကိန်းဂဏန်းတစ်ခုဖြစ်နိုင်သည်။ အကယ်. မှားယွင်းသော ပြန်လာလျှင်၎င်းသည်ဝယ်ယူမှုသည်မအောင်မြင်ပါ, နောက်ထပ်ရောဂါရှာဖွေရန်လိုအပ်သည်ဟုဆိုလိုသည်။

2 ။ အမှားအစီရင်ခံစာများနှင့်အသေးစိတ်မှတ်တမ်းများကိုဖွင့်ပါ

Debugging လုပ်ခြင်းမပြုမီ PHP အမှားအယွင်းပြုရေးယန္တရားကိုသင် ဦး စွာသေချာအောင်လုပ်သင့်သည်။

 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
error_reporting(E_ALL);
ini_set('display_errors', 1);

ဤကုဒ်သည် MySQLI အမှားများအားလုံးကိုခြွင်းချက်များကိုချမှတ်ရန်နှင့်စာမျက်နှာပေါ်တွင်တိုက်ရိုက်ပြသရန်၎င်းတို့ကိုစာမျက်နှာပေါ်တွင်ပြသနိုင်ရန်အတွက်၎င်းတို့ကိုစာမျက်နှာပေါ်တွင်ပြသနိုင်အောင်ပြုလုပ်နိုင်သည်။

3 ။ Encapsulations နှင့်အရန်လုပ်ဆောင်ချက်များကို debugging

Return_get ၏ returnging တန်ဖိုးကို debugging လုပ်ခြင်းကိုလွယ်ကူချောမွေ့စေရန်အထောက်အကူပြုလုပ်ဆောင်မှုကို encapsulated လုပ်နိုင်သည်။

 function debug_attr_get(mysqli_stmt $stmt, int $attr) {
    try {
        $value = $stmt->attr_get($attr);
        if ($value === false) {
            echo "attribute တွေမရနိုင်ဘူး(ID: $attr): ပြန်လာ false\n";
        } else {
            echo "ဉစ်စာပစ္စည်းများ(ID: $attr)အဘိုး: $value\n";
        }
    } catch (mysqli_sql_exception $e) {
        echo "ခြွင်းချက်များ: " . $e->getMessage() . "\n";
    }
}

မည်သို့အသုံးပြုရမည်နည်း

 $mysqli = new mysqli("localhost", "user", "password", "database");
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
debug_attr_get($stmt, MYSQLI_STMT_ATTR_CURSOR_TYPE);

4 ။ Logging သတင်းအချက်အလက် debugging သတင်းအချက်အလက်နှင့်အတူပေါင်းစပ်

ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင် debug သတင်းအချက်အလက်ကိုရှေ့ဆုံးသို့တိုက်ရိုက်ထုတ်ယူလိုမည်မဟုတ်ပါ။ အချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းဖြင့်ထိန်းသိမ်းထားနိုင်သည်။

 function log_debug_info($message) {
    file_put_contents('/var/log/php_debug.log', date('Y-m-d H:i:s') . " - $message\n", FILE_APPEND);
}

ဤအရာကို debugging functions များဖြင့်ပေါင်းစပ်ပါ။

 function debug_attr_get_to_log(mysqli_stmt $stmt, int $attr) {
    try {
        $value = $stmt->attr_get($attr);
        $msg = ($value === false) ? "attr_get ပြန်လာ false" : "attr_get အဘိုး为: $value";
    } catch (mysqli_sql_exception $e) {
        $msg = "ထူးခြားသော: " . $e->getMessage();
    }
    log_debug_info("ဉစ်စာပစ္စည်းများ ID $attr - $msg");
}

5 ။ SENDATION SIGNATION SIVULE

တစ်ခါတစ်ရံတွင်အိမ်ခြံမြေဆက်တင်များသည်ဆက်သွယ်မှုသို့မဟုတ်ဖော်ပြချက်၏အခြား parameters များပေါ်တွင်မူတည်သည်။ ဥပမာအားဖြင့်:

 $stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_SCROLLABLE);

attrack_get ကို ခေါ်ဆိုခြင်းဖြင့်သာ attribute value အတွက်ပြောင်းလဲမှုကိုလေ့လာနိုင်သည်။ ထို့ကြောင့်အမှန်တကယ်လျှောက်လွှာ၏ကွပ်မျက်မှုဆိုင်ရာယုတ္တိဗေဒကိုခွဲခြမ်းစိတ်ဖြာခြင်းထက် debugging စဉ်အတွင်း simulated သည်။

6 ။ ဆက်သွယ်မှုသို့မဟုတ်ကြေညာချက်ပျက်ကွက် debugging

အကယ်. ပြင်ဆင်ထားပါက () ကို ပြန်ပို့ သည်ဟုဆိုလျှင် ဒေါ်လာ stmt variable သည်မမှန်ကန်သောအရာဝတ်ထုတစ်ခုဖြစ်သည် ဤသို့ပြုလုပ်ရန်, သင်ဆက်သွယ်မှုနှင့်ကြေညာချက်ပြင်ဆင်မှုအတွက်စစ်ဆေးမှုများကိုသင်ထည့်နိုင်သည်။

 if (!$stmt) {
    die("ကြေညာချက်ကိုပြင်ဆင်ရန်ပျက်ကွက်: " . $mysqli->error);
}

7 ။ အဝေးမှ debugging အတွက်ဆာဗာတောင်းဆိုမှုများကိုတုပရန်ဆံပင်ကောက်ကောက်ကိုအသုံးပြုပါ

အချို့သောအခြေအနေများတွင် API သို့မဟုတ်ဆာဗာယုတ္တိဗေဒကိုအဝေးမှ debug လုပ်ရန်လိုအပ်နိုင်သည်။ PHP scripts များကိုစမ်းသပ်ရန် Curl ကို သုံးနိုင်သည်။ ဥပမာအားဖြင့်:

 $url = "https://m66.net/api/debug_stmt.php";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

log နှင့် တွဲဖက်. အမှန်တကယ်အကျိုးသက်ရောက်မှုကိုလေ့လာရန် M66.net ဒိုမိန်းအမည်အောက်ရှိ script ကို debugging code ကိုဖြန့်ဝေနိုင်ပါသည်။

ကောက်ချက်

အထက်ပါနည်းလမ်းများမှတဆင့် MySQLI_STMMT ၏အခြေအနေနှင့်အပြုအမူများကိုပိုမိုရှင်းလင်းစွာနားလည်နိုင်သည်။ ဒေတာဘေ့စ်လုပ်ငန်းများကို Debugging ပြုလုပ်ခြင်းသည် SQL ကိုအောင်မြင်စွာလုပ်ဆောင်ခြင်းရှိမရှိနှင့်မသက်ဆိုင်ပါ။ ဤဆောင်းပါးတွင်ကျွမ်းကျင်မှုများသည်ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန်နှင့်ဖွံ့ဖြိုးတိုးတက်မှုထိရောက်မှုကိုတိုးတက်စေရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။