လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> dets data ထုတ်ယူနည်းလမ်းကို dynamically attname_get ကိုသုံးပါ

dets data ထုတ်ယူနည်းလမ်းကို dynamically attname_get ကိုသုံးပါ

M66 2025-05-24

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 ကိုပြောင်းလဲရန်မည်သို့အသုံးပြုရမည်ကိုပြသသည်။

1 ။ MySQLI_STMT :: Att_GET function ကိုမိတ်ဆက်ပါ

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 ထုတ်ပြန်ချက်များ၏ကွပ်မျက်မှုအမူအကျင့်ကိုဆက်လက်ထိန်းချုပ်နိုင်သည်။

2 ။ အများအားဖြင့်အသုံးပြု attribute ကိုကိန်းဂဏန်းများ

  • 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 : ထုတ်ပြန်ချက်၏ကွပ်မျက်မှုအတွက်အချိန်ကုန်အချိန်။

ဤဂုဏ်သတ္တိများကိုဒိုင်းနိတ်ဖတ်ခြင်းနှင့်ညှိခြင်းအားဖြင့်စီးပွားရေးလိုအပ်ချက်များအရသင့်လျော်သောထုတ်ယူနည်းလမ်းကိုရွေးချယ်နိုင်သည်။

3 ။ လက်တွေ့ကျတဲ့ဥပမာ - dynamically data ထုတ်ယူနည်းလမ်းကိုပြောင်းလဲခြင်း

ကျွန်ုပ်တို့တွင်အချက်အလက်အမြောက်အများကိုမေးမြန်းရန်လိုအပ်ကြောင်း, ကျွန်ုပ်တို့သည် 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 ကိုတိုးတက်စေရန်အတွက်အထူးသဖြင့်ကြီးမားသောဒေတာမေးမြန်းချက်များကိုကိုင်တွယ်ရန်အထူးသင့်တော်သည်။

4 ။ attr_get နှင့်အတူလိုက်လျောညီထွေဖြစ်အောင်ဒေတာထုတ်ယူနည်းဗျူဟာကိုအကောင်အထည်ဖော်ပါ

အမှန်တကယ်စီမံကိန်းများတွင်လက်ရှိချိန်ညှိချက်များကိုရယူရန် 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 ပတ်ဝန်းကျင်အပေါ် အခြေခံ. ဒေတာထုတ်ယူနည်းစနစ်များကိုပြောင်းလဲနိုင်သည်။

5 ။ အကျဉ်းချုပ်

  • MySQLI_STMT :: Attr. Attr . Attrible က attributeed statement ၏ attribute တန်ဖိုးကိုရယူရန်ခွင့်ပြုသည်။

  • cursor type နှင့် prefetching အတန်းအစားကဲ့သို့သော attribute တွေကို dynamically attribute တွေကိုအားဖွငျ့

  • Att_get ၏စာဖတ်ခြင်းရလဒ်များနှင့်အတူပေါင်းစပ်ထားသော,