PHP တွင် MySQL databases များကို operating လုပ်သည့်အခါကြိုတင်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းသည်အထူးသဖြင့်အသုံးပြုသူ input ကိုပြုပြင်သည့်အခါ SQL Injection ကိုထိရောက်စွာကာကွယ်ရန်အတွက်သာမန်နည်းလမ်းဖြစ်သည်။ သို့သော်အကြီးစားဒေတာမေးမြန်းချက်များအတွက်ဒေတာဘေ့စ်လုပ်ငန်းများ၏ထိရောက်မှုကိုပိုမိုတိုးတက်အောင်လုပ်ခြင်းနှင့်အရင်းအမြစ်သုံးစွဲမှုကိုလျှော့ချရန်နှင့်အရင်းအမြစ်သုံးစွဲမှုကိုလျှော့ချနိုင်ပုံကို developer များ၏အာရုံစိုက်မှုဖြစ်လာသည်။ ဤဆောင်းပါးသည် MySQLI_STMT :: Attr_et function ၏အခန်းကဏ် on ကိုအာရုံစိုက်ပြီးကြီးမားသောဒေတာမေးမြန်းမှု၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်၎င်းကိုမည်သို့အသုံးပြုရမည်ကိုသရုပ်ဖော်ရန်အမှန်တကယ်ကုဒ်နမူနာများဖြင့်ပေါင်းစပ်ပါ။
MySQLI_STMT :: AttR_Get သည် PHP တွင် MySQLI_STMT အတန်းအစား၏နည်းလမ်းဖြစ်သည်။ ၎င်းသည်လက်ရှိ Preprocessing statement ၏ attribute တန်ဖိုးကိုရရှိရန်အသုံးပြုသည်။ ၎င်းကိုမှတစ်ဆင့် Buffer Mode နှင့် Properting ထုတ်ပြန်ချက်များ၏အချိန်ကုန်ခြင်းကဲ့သို့သောဂုဏ်သတ္တိများကိုဖတ်နိုင်သည်။
MySQLI_STMT_ATTR_CARSOR_TYPE : data extraction နည်းလမ်းကိုဆုံးဖြတ်ရန် cursor type ကိုသတ်မှတ်ပါ။
MySQLI_STMT_ATTRT_ATTRAT_ROWS : Premetched အတန်းအရေအတွက်ကိုထိန်းချုပ်သည်။
MySQLI_STMT_ATTR_UTTR_MAX_Length : အများဆုံးအရှည်ကို update လုပ်ရန်ဆုံးဖြတ်ပါ။
ဤဂုဏ်သတ္တိများကိုနားလည်ခြင်းနှင့်အသုံးပြုခြင်းသည်ကြီးမားသောအချက်အလက်စုံစမ်းမှု၏ထိရောက်မှုကိုပိုမိုကောင်းမွန်စေသည်။
ကြီးမားသောဒေတာများကိုမေးမြန်းခြင်းတွင်များစွာသောအချက်အလက်များကိုဆွဲခြင်းနှင့်ပြုပြင်ခြင်းသည်မကြာခဏပါဝင်လေ့ရှိသည်။ ကြိုတင်သတ်မှတ်ထားသည့်ကြေငြာချက်၏ပုံမှန်ကြားခံပေါ်လစီသည်မသင့်လျော်ပါကမှတ်မိခြင်းသို့မဟုတ်မေးမြန်းမှုနှောင့်နှေးမှုကြောင့်ဖြစ်ပေါ်လာနိုင်သည်။ AttR_Get မှတစ်ဆင့်သင်ဟာလက်ရှိ attribute ကိုအရင်ဖတ်နိုင်ပြီးထိရောက်သောစုံစမ်းမှုအောင်မြင်ရန်သင်၏လိုအပ်ချက်များ ( MySQLI_STMT :: Attry:: Attr_set ) နှင့်အညီချိန်ညှိနိုင်သည်။
cursor အမျိုးအစားများကျိုးကြောင်းဆီလျော်သောချိန်ညှိချက်များ <br> <br> MySQLI_Cursor_type_READ_READ_READ_OAD_OAD_READ_READ_READ_READ_READ_READ_READ_READ_READ_READ_READ_READ_REACT_REACT_OREATY CURSOR ကိုသုံးပါ။
Prefetch လိုင်းညှိနှိုင်းမှု <br> <br> MySQLI_STMT_ATT_ATT_ATT_ATT_ATT_ATTREW_RAWS ကိုဖတ်ခြင်း,
ကြေငြာချက် status ကို detect <br> attribute တွေကိုဖတ်ခြင်းအားဖြင့်၎င်းကိုပြန်လည်စတင်ရန်လိုအပ်, မလိုအပ်,
လက်ရှိ Preprocessing Station ၏ cursocessing statements ကို cursocessing statements attribros အမျိုးအစားကိုရယူရန်အောက်ပါဥပမာသည် MySQLI_STMT :: Attr_get ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ,ဒိုမိန်းအမည်ကိုအစားထိုးပါ m66.net
$mysqli = new mysqli("db.m66.net", "username", "password", "database");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// စုံစမ်းမှုကြေညာချက်ကိုပြင်ဆင်ပါ
$stmt = $mysqli->prepare("SELECT * FROM large_table WHERE status = ?");
// parameters တွေကိုသတ်မှတ်
$status = 'active';
$stmt->bind_param("s", $status);
// လက်ရှိ cursor type attribute ကိုရယူပါ
$cursorType = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);
// လက်ရှိ cursor အမျိုးအစား output ကို
echo "လက်ရှိ cursor အမျိုးအစား: " . $cursorType . PHP_EOL;
// cursor type ကိုဖတ်မထားဘူးဆိုရင်,စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ဖတ်ရန်အတွက်သာ cursor အဖြစ်သတ်မှတ်ပါ
if ($cursorType !== MYSQLI_CURSOR_TYPE_READ_ONLY) {
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_READ_ONLY);
}
// Execution ကြေငြာချက်
$stmt->execute();
// ရလဒ်များကိုရယူပါ
$result = $stmt->get_result();
// ရလဒ်ကိုကျော်ကြား
while ($row = $result->fetch_assoc()) {
// ဒေတာတစ်ခုချင်းစီကိုအတန်းတိုင်းလုပ်ငန်းစဉ်
print_r($row);
}
// အနီးကပ်ထုတ်ပြန်ချက်များနှင့်ဆက်သွယ်မှု
$stmt->close();
$mysqli->close();
?>
Code တွင်၎င်းသည် Read-in-cursor ဟုတ်မဟုတ်အတည်ပြုရန် Cursor အမျိုးအစားကို Cursor အမျိုးအစားကိုရရန် ဒေါ်လာ stmt-> attr_et_get () ကိုသုံးပါ။
Read-in-beal cursor သည်ဆာဗာကိုဒေတာလိုင်းကိုလိုင်းဖြင့်ဖတ်ရန်ခွင့်ပြုသည်, မှတ်ဉာဏ်အသုံးပြုမှုကိုလျော့နည်းစေသည်။ ကြီးမားသောဒေတာအစုများကိုမေးမြန်းရန်သင့်တော်သည်။
cursor type ကိုပြုပြင်ပြီးတဲ့နောက် Quartering Queries သည် client memory ဖိအားကိုထိထိရောက်ရောက်လျှော့ချနိုင်ပြီးစုံစမ်းမှုစွမ်းအားကိုတိုးတက်စေသည်။
အကြီးစားဒေတာစုံစမ်းရေးအခြေအနေများတွင် MySQLI_STMTM :: AttR_Get function ကိုဆင်ခြင်တုံတရားအသုံးပြုမှုကိုဖတ်ရန်နှင့် Attroge attrige function ကိုဖတ်ရန်နှင့်ချိန်ညှိခြင်းနှင့်ချိန်ညှိခြင်းအားဖြင့်ဒေတာဘေ့စ်စစ်ဆင်ရေးကိုတိုးတက်စေရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ cursor အမျိုးအစားနှင့် prefetched အတန်းအရေအတွက်ကိုထိန်းချုပ်ခြင်းအားဖြင့်၎င်းသည်မှတ်ဥာဏ်အသုံးပြုမှုကိုလျှော့ချနိုင်ရုံသာမကတုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေသည်။
ဤအသေးစိတ်အချက်အလက်များကိုကျွမ်းကျင်ပိုင်မြင့်မြင့်မားသောစွမ်းဆောင်ရည်မြင့်မားသော, developer များက MySQLI_STMT :: MySqli_Stmt :: Att_set ကိုပေါင်းစပ်ရန်နှင့်ပိုမိုထိရောက်သော database အပြန်အလှန်ဆက်သွယ်မှုယုတ္တိဗေဒကိုဖန်တီးရန်နှင့် Attr_et နှင့် MySqli_Stmt :: attr_et_set ကို ပေါင်းစပ်ရန်အကြံပြုသည်။