လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> attr_get ၏အကျိုးသက်ရောက်မှုကို debugging tools တွေကိုကြည့်ရှုပုံကိုဘယ်လိုမြင်နိုင်မလဲ။

attr_get ၏အကျိုးသက်ရောက်မှုကို debugging tools တွေကိုကြည့်ရှုပုံကိုဘယ်လိုမြင်နိုင်မလဲ။

M66 2025-05-23

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI extension ကို သုံး. MySQLI_STMT :: Attri_et သည်လူကြိုက်များသော်လည်းလက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်လက်ရှိကြေငြာချက်လက်ကိုင်များ၏ဂုဏ်သတ္တိများကိုရရှိရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှု၏ကွပ်မျက်မှုအကျိုးသက်ရောက်မှုကိုပိုမိုရှင်းလင်းစွာနားလည်နိုင်ရန်အတွက်၎င်းတွင်ကျွန်ုပ်တို့၏ပြည်တွင်းလုပ်ငန်းစဉ်ကိုလေ့လာရန် Debugging Tools များကိုသုံးနိုင်သည်။

MySQLI_STMT :: Att_Get ကဘာလဲ

MySQLI_STMT :: Att_get (INT $ attribute): Int | Int | MySQLI_STMT အတန်းအစား၏နည်းလမ်းဖြစ်သည်။ ၎င်းသည် parameter တစ်ခုအနေဖြင့်စဉ်ဆက်မပြတ် attribute ကိုလက်ခံပြီးသက်ဆိုင်ရာ attribute ၏လက်ရှိတန်ဖိုးကိုပြန်လည်ပေးအပ်သည်။ အကယ်. မအောင်မြင်ပါက မှားယွင်းစွာ ပြန်လာသည်။

ဘုံ $ attribute တွေမှာ:

  • MySQLI_STMT_ATTR_APAN_MAX_Length : အများဆုံးကော်လံအရှည်အဆင့်မြှင့်တင်မှုရှိမရှိရရှိသည်။

  • MySQLI_STMT_ATTR_CARSOR_TYPE : ကြေငြာချက်အရအသုံးပြုသော cursor type ကိုရရှိသည်။

အဘယ်ကြောင့် attrick attroget debuggug

MySQLI_STMT ကို အသုံးပြုသောအခါ developer များက binding parameters များကိုကွပ်မျက်ခြင်းနှင့်ရယူခြင်းကိုပိုမိုအာရုံစိုက်စေသည်။ သို့သော်ရလဒ်အနေဖြင့်ရလဒ်အနေဖြင့်အငြင်းပွားဖွယ်ကောင်းသောပြ problems နာများကိုသင်ကြုံတွေ့ရသောအခါ, ဤအချိန်တွင် attr_get သည်အထူးအရေးကြီးသည်။

debugging tools တွေကိုအသုံးပြု။ attr_get ကို လေ့လာပါ

1 ။ XDebug + vs ကုဒ်ကိုအသုံးပြုခြင်း

XDebug သည် PHP အတွက်အားကောင်းသော debugging tool တစ်ခုဖြစ်သည်။ Visual Studio Code နှင့်လုပ်ဆောင်ချက်တစ်ခု၏ပြန်လာတန်ဖိုးနှင့်ကွပ်မျက်လမ်းကြောင်းကိုအလိုလိုရှုမြင်နိုင်သည်။

အောက်ပါအတိုင်းအဆင့်များမှာ -

  1. xdebug ကို install လုပ်ပြီး configure လုပ်ပါ။

     zend_extension=xdebug
    xdebug.mode=debug
    xdebug.start_with_request=yes
    xdebug.client_host=127.0.0.1
    xdebug.client_port=9003
    
  2. vs code နှင့် configure .VSCode / Layson :

     {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Listen for Xdebug",
          "type": "php",
          "request": "launch",
          "port": 9003
        }
      ]
    }
    
  3. breakpoints များကိုသတ်မှတ်ပါ, နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

     $mysqli = new mysqli("localhost", "user", "pass", "database");
    $stmt = $mysqli->prepare("SELECT * FROM users WHERE status = ?");
    $stmt->bind_param("s", $status);
    $status = 'active';
    $stmt->execute();
    
    $cursor_type = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE); // breakpoints set
    var_dump($cursor_type);
    

    Debugging လုပ်စဉ်အတွင်း $ cursor_type ၏ပြန်လာတန်ဖိုးကို ide ၏ variable monitor တွင်ရှင်းရှင်းလင်းလင်းတွေ့မြင်နိုင်သည်။

2 ။ သစ်ထုတ်လုပ်ရေးနည်းလမ်းများကိုသုံးပါ

အကယ်. သင်သည် IDE သို့မဟုတ်ဝေးလံခေါင်ဖျား debugging ကိုမသုံးနိုင်ပါက attr_get ၏အကျိုးသက်ရောက်မှုကိုကိုယ်တိုင် logging ၏အကျိုးသက်ရောက်မှုကိုခြေရာခံနိုင်သည်။

 $log_file = '/var/log/mysqli_debug.log';

function log_debug($msg) {
    file_put_contents($log_file, date("[Y-m-d H:i:s] ") . $msg . PHP_EOL, FILE_APPEND);
}

$mysqli = new mysqli("localhost", "user", "pass", "database");
$stmt = $mysqli->prepare("SELECT * FROM users WHERE status = ?");
$stmt->bind_param("s", $status);
$status = 'active';
$stmt->execute();

$cursor_type = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);
log_debug("Cursor type: " . var_export($cursor_type, true));

ဆာဗာဘေးထွက် cursor ကိုအသုံးပြုသည်ဖြစ်စေ, attribute value ကို log ထဲတွင်မျှော်လင့်မထား,

3 ။ နောက်ခံအကောင်အထည်ဖော်မှုအချက်အလက်များကိုကြည့်ပါ။

ဥပမာအားဖြင့်နောက်ထပ် debugging လိုအပ်ပါက MySQLI တိုးချဲ့မှုအပြုအမူသည်ပုံမှန်မဟုတ်သော MySQLI_STMT_ATTR_GEGT ၏ C အကောင်အထည်ဖော်မှုတွင် PHP နှင့် Break Points ကိုသင်စုဆောင်းနိုင်သည်။ ဤနည်းလမ်းသည် C developer များနှင့်တိုးချဲ့ခြင်းလုပ်ငန်းများအတွက်သင့်တော်သည်။

နမူနာသရုပ်ပြပတ်ဝန်းကျင်

Var_Dump နှင့် Page Output မှတိုက်ရိုက်သရုပ်ပြတန်ဖိုးများကိုတိုက်ရိုက်ပြသရန်အတွက်ပြည့်စုံသောသရုပ်ပြကုဒ်များပါ 0 င်သောရိုးရှင်းသောစစ်ဆေးမှုစာမျက်နှာကို http://m66.net/debugget_Demo.php တွင်ထည့်နိုင်သည်။ ဤနည်းအားဖြင့် Debugger မရှိပါကပင် function ကိုအလိုအလျောက်အကျိုးသက်ရောက်နိုင်သည်ကိုသင်တွေ့နိုင်သည်။

အကျဉ်းချုပ်

MySQLI_STMT :: AttR_GET နှင့်အတူ debugging စဉ်အတွင်းကြေငြာချက်ဆိုင်ရာကြေငြာချက်၏အခြေအနေကိုပိုမိုတိကျစွာရနိုင်သည်။ XDebug debugging, log output prog output prog output ကိုကြည့်ခြင်း, သို့မဟုတ်အခြေခံ C code ကိုကြည့်ခြင်း, ပြ Proble နာအနေအထားကိုတိုးတက်စေရန်စွမ်းဆောင်ရည်နှင့်လိုက်ဖက်ခြင်းဆိုင်ရာရောဂါရှာဖွေတွေ့ရှိမှုကိုညှိနှိုင်းနိုင်သည့်အခါဤ debugging နည်းစနစ်များကိုထည့်သွင်းရန်အကြံပြုသည်။