PHP ၏ MySQLI extension တွင် MySQLI_STMT အရာဝတ်ထုသည်ကြိုတင်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုပြင်ဆင်ရန်နှင့်ကွပ်မျက်ရန်နည်းလမ်းများစွာကိုပေးသည်။ ၎င်းတို့အနက် MySQLI_STMT :: Attra_Get function ကိုလက်ရှိကြေငြာချက်လက်ကိုင်များ၏ attribute တန်ဖိုးကိုရရှိရန်အသုံးပြုနိုင်သည်။ ဒီ attribute တွေကို dynamically စာဖတ်ခြင်းအားဖြင့်ဒေတာထုတ်ယူခြင်းနှင့်လုပ်ငန်းလည်ပတ်မှုဆိုင်ရာအပြုအမူများကိုပိုမိုအာရုံစိုက်နိုင်ပြီးဒေတာဗားရှင်းလိုအပ်ချက်များကိုကွဲပြားခြားနားသောအခြေအနေများတွင်ပါ 0 င်သည်။
ဤဆောင်းပါးသည် MySQLI_STMT :: Att_Get function ကိုအသုံးပြုမှုအသေးစိတ်ကိုအသေးစိတ်ရှင်းပြပါမည်။ အမှန်တကယ်ဥပမာများကို အခြေခံ. ၎င်းသည်ပိုမိုထိရောက်သောပြောင်းလွယ်ပြင်လွယ်ဒေတာဘေ့စ်အပြန်အလှန်အကျိုးပြုရန် data extraction method ကို detnically unuction method ကိုပြောင်းလဲရန်မည်သို့အသုံးပြုရမည်ကိုပြသသည်။
MySQLI_STMM :: Attr_get သည် MySQLI ရှိကြေငြာချက်ဆိုင်ရာအရာဝတ်ထုများကိုကြိုတင်သတ်မှတ်ထားသည့်အရာဝတ်ထုများအတွက်နည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်သည်ဖော်ပြသည့်ဖော်ပြချက်၏သတ်မှတ်ထားသော attribute တန်ဖိုးကိုပြန်လည်ရယူရန်ဖြစ်သည်။ function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
public mysqli_stmt::attr_get(int $attr): mixed
Parameter $ attracy ၏ attracy ၏စဉ်ဆက်မပြတ်တန်ဖိုးသည်ရရှိသော attribute type အမျိုးအစားများစသည်တို့ကိုသတ်မှတ်သည်။
ပြန်လာတန်ဖိုး - သက်ဆိုင်ရာ attribute ၏လက်ရှိတန်ဖိုး, တိကျသောအမျိုးအစားသည် attribute ပေါ်တွင်မူတည်သည်။
ဤနည်းလမ်းကို attr_set ဖြင့်အသုံးပြုသည်။ attribute တွေကို settings တွေနဲ့ရယူခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် MySQLI ထုတ်ပြန်ချက်များ၏ကွပ်မျက်မှုအမူအကျင့်ကိုဆက်လက်ထိန်းချုပ်နိုင်သည်။
MySQLI_STMT_ATTR_CARSOR_TYPE : Real letion set ကိုပြန်လည်ရယူသည်ကိုဆုံးဖြတ်ရန်အသုံးပြုသော cursor type ကိုသတ်မှတ်သည်။
MySQLI_STMT_ATT_ATTRE_ROWS : PRIFTED ရလဒ်ကိုထိန်းချုပ်ခြင်းသည်စွမ်းဆောင်ရည်နှင့်မှတ်ဉာဏ်အသုံးပြုမှုကိုအကျိုးသက်ရောက်စေသည်။
MySQLI_STMT_ATTR_APAX_Length : enable လုပ်တဲ့အခါ String နယ်ပယ်ရဲ့အများဆုံးအရှည်ကိုရယူပါ။
MySQLI_STMT_ATTR_ATTR_Execute_TIMEOT : ထုတ်ပြန်ချက်၏ကွပ်မျက်မှုအတွက်အချိန်ကုန်အချိန်။
ဤဂုဏ်သတ္တိများကိုဒိုင်းနိတ်ဖတ်ခြင်းနှင့်ညှိခြင်းအားဖြင့်စီးပွားရေးလိုအပ်ချက်များအရသင့်လျော်သောထုတ်ယူနည်းလမ်းကိုရွေးချယ်နိုင်သည်။
ကျွန်ုပ်တို့တွင်အချက်အလက်အမြောက်အများကိုမေးမြန်းရန်လိုအပ်ကြောင်း, ကျွန်ုပ်တို့သည် prefetch data အားလုံးကို cursor type ကို 0 ယ်လိုခြင်းရှိမရှိသို့မဟုတ် 0 ယ်လိုအားရှိ,
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// ပြင်ဆင်မှုကြေညာချက်
$stmt = $mysqli->prepare("SELECT id, name FROM users WHERE status = ?");
$status = 1;
$stmt->bind_param("i", $status);
// cursor ကို server-side cursor သို့သတ်မှတ်ပါ,ရလဒ်အားလုံးကိုမဖွင့်ပါနှင့်
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_READ_ONLY);
// Execution ကြေငြာချက်
$stmt->execute();
// လက်ရှိ cursor အမျိုးအစားကိုဖတ်ပါ,setup ကိုအောင်မြင်ကြောင်းအတည်ပြုပါ
$currentCursorType = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);
echo "လက်ရှိ cursor အမျိုးအစားဖြစ်ပါတယ်: " . $currentCursorType . PHP_EOL;
// binding ရလဒ် variable တွေကို
$stmt->bind_result($id, $name);
// အတန်းအားဖြင့်ရလဒ်များကိုရယူပါ,မှတ်ဥာဏ်ကိုသိမ်းပါ
while ($stmt->fetch()) {
echo "အသုံးပြုသူID: $id, နံမယ်: $name" . PHP_EOL;
}
$stmt->close();
$mysqli->close();
?>
In this example, we set the cursor type to a read-only server-side cursor ( MYSQLI_CURSOR_TYPE_READ_ONLY ) through attr_set , so that the results will not be loaded into memory at once, but will be extracted line by line as needed. ထို့နောက် setting ကိုအောင်မြင်ရန်လက်ရှိ cursor type ကိုရယူရန် Att_Get အမျိုးအစားကိုသုံးပါ။
ဤရွေ့ကားပြောင်းလဲနေသောညှိနှိုင်းမှုနည်းလမ်းသည်အထူးသဖြင့်မှတ်ဥာဏ်ဖိအားကိုထိထိရောက်ရောက်လျှော့ချနိုင်ပြီး application stability ကိုတိုးတက်စေရန်အတွက်အထူးသဖြင့်ကြီးမားသောဒေတာမေးမြန်းချက်များကိုကိုင်တွယ်ရန်အထူးသင့်တော်သည်။
အမှန်တကယ်စီမံကိန်းများတွင်လက်ရှိချိန်ညှိချက်များကိုရယူရန် Att_get ကို ပထမဆုံးခေါ်ဆိုနိုင်ပြီးကွဲပြားခြားနားသောပတ်ဝန်းကျင်သို့မဟုတ် parameters များအရကွဲပြားခြားနားသောထုတ်ယူနည်းဗျူဟာများကိုရွေးချယ်နိုင်သည်။
// လက်ရှိ premetched အတန်းအရေအတွက်ကိုရယူပါ
$prefetchRows = $stmt->attr_get(MYSQLI_STMT_ATTR_PREFETCH_ROWS);
if ($prefetchRows > 100) {
// premetched အတန်းအရေအတွက်ကြီးမားလျှင်,ဆာဗာ - ဘက် cursor ကိုမွေးစားပါ
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_READ_ONLY);
} else {
// အခြားနည်းအားဖြင့်,အားလုံးပုံမှန်အားဖြင့်အားလုံး preachched
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_TYPE_NO_CURSOR);
}
ဤနည်းအားဖြင့်ဤအစီအစဉ်သည်လက်ရှိဒေတာဘေ့စ်အဆင့်အတန်းသို့မဟုတ်လည်ပတ်နေသောဒေတာဘေ့စ်လုပ်ငန်းများအောင်မြင်ရန်လက်ရှိဒေတာဘေ့စ်အခြေအနေသို့မဟုတ် operating ပတ်ဝန်းကျင်အပေါ် အခြေခံ. ဒေတာထုတ်ယူနည်းစနစ်များကိုပြောင်းလဲနိုင်သည်။
MySQLI_STMT :: Attr. Attr . Attrible က attributeed statement ၏ attribute တန်ဖိုးကိုရယူရန်ခွင့်ပြုသည်။
cursor type နှင့် prefetching အတန်းအစားကဲ့သို့သော attribute တွေကို dynamically attribute တွေကိုအားဖွငျ့
Att_get ၏စာဖတ်ခြင်းရလဒ်များနှင့်အတူပေါင်းစပ်ထားသော,