ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI extension ကို သုံး. MySQLI_STMT :: Attri_et သည်လူကြိုက်များသော်လည်းလက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်လက်ရှိကြေငြာချက်လက်ကိုင်များ၏ဂုဏ်သတ္တိများကိုရရှိရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှု၏ကွပ်မျက်မှုအကျိုးသက်ရောက်မှုကိုပိုမိုရှင်းလင်းစွာနားလည်နိုင်ရန်အတွက်၎င်းတွင်ကျွန်ုပ်တို့၏ပြည်တွင်းလုပ်ငန်းစဉ်ကိုလေ့လာရန် Debugging Tools များကိုသုံးနိုင်သည်။
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 ကိုရရှိသည်။
MySQLI_STMT ကို အသုံးပြုသောအခါ developer များက binding parameters များကိုကွပ်မျက်ခြင်းနှင့်ရယူခြင်းကိုပိုမိုအာရုံစိုက်စေသည်။ သို့သော်ရလဒ်အနေဖြင့်ရလဒ်အနေဖြင့်အငြင်းပွားဖွယ်ကောင်းသောပြ problems နာများကိုသင်ကြုံတွေ့ရသောအခါ, ဤအချိန်တွင် attr_get သည်အထူးအရေးကြီးသည်။
XDebug သည် PHP အတွက်အားကောင်းသော debugging tool တစ်ခုဖြစ်သည်။ Visual Studio Code နှင့်လုပ်ဆောင်ချက်တစ်ခု၏ပြန်လာတန်ဖိုးနှင့်ကွပ်မျက်လမ်းကြောင်းကိုအလိုလိုရှုမြင်နိုင်သည်။
အောက်ပါအတိုင်းအဆင့်များမှာ -
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
vs code နှင့် configure .VSCode / Layson :
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
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 တွင်ရှင်းရှင်းလင်းလင်းတွေ့မြင်နိုင်သည်။
အကယ်. သင်သည် 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 ထဲတွင်မျှော်လင့်မထား,
ဥပမာအားဖြင့်နောက်ထပ် 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 နည်းစနစ်များကိုထည့်သွင်းရန်အကြံပြုသည်။