လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> attr_get ကိုပိတ်ထားသောကြေညာချက်တွင်ခေါ်ဆိုနိုင်ပါသလား။

attr_get ကိုပိတ်ထားသောကြေညာချက်တွင်ခေါ်ဆိုနိုင်ပါသလား။

M66 2025-05-29

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI extension ကိုအသုံးပြုသောအခါ developer များသည်များသောအားဖြင့်လုံခြုံရေးနှင့်စွမ်းဆောင်ရည်တိုးတက်စေရန်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုအသုံးပြုကြသည်။ အချို့သောအခြေအနေများတွင် MySQLI_STMT :: Attr_et () နည်းလမ်းကိုထုတ်ပြန်ကြေငြာချက်ကိုထုတ်ပြန်ကြေငြာချက်သည်အတိအလင်းဖြစ်စေ, ဒီကိစ္စမှာဘာဖြစ်မလဲ။ ပုံမှန်အလုပ်လုပ်နေတုန်းပဲလား။ ဤဆောင်းပါးသည်၎င်းကိုအသေးစိတ်လေ့လာလိမ့်မည်။

mysqli_stmm :: Attr_et () ကဘာလဲ။

MySQLI_STMM :: Att_Get () သည် PHP ရှိနည်းလမ်းတစ်ခုဖြစ်ပြီးကြေငြာချက်နှင့်ဆက်စပ်သော attribute များရယူရန်အသုံးပြုသော PHP တွင်နည်းလမ်းဖြစ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 int mysqli_stmt::attr_get( int $attribute )

၎င်းသည်များသောအားဖြင့် Attribute တန်ဖိုးများကိုရရှိသောအရာ ( MySQLI_STMT_ATTR_TTRT_CARSOR_TSOR_TYPE ) ကဲ့သို့သော attribute တန်ဖိုးများကိုရရှိရန်အသုံးပြုသည်။

ပိတ်ထားသောကြေညာချက်လက်ကိုင်အပေါ်အပြုအမူကိုခေါ်ပါ

MySQLI_STMT () () () () () သို့မဟုတ် script () သို့မဟုတ် script () သို့မဟုတ် script uncultion) ကိုထုတ်ပြန်သောထုတ်ပြန်ချက်ကိုပိတ်ထားသည်။ Att_GET () အပါအ 0 င်ဤအချိန်တွင်မည်သည့်နည်းလမ်းကိုမဆိုခေါ်ဆိုခြင်း,

  1. အမှားတစ်ခုသို့မဟုတ်သတိပေးချက်တစ်ခုကိုပစ်ပါ PHP တွင်လွတ်လပ်သောအရာဝတ်ထုအရင်းအမြစ်တွင်နည်းလမ်းတစ်ခုကိုခေါ်ဆိုခြင်းသည်များသောအားဖြင့်သတိပေးခြင်းသို့မဟုတ်ဆိုးဝါးသောအမှားများကိုပစ်ချလေ့ရှိသည်။ ဥပမာအားဖြင့်:

     $stmt = $mysqli->prepare("SELECT * FROM users");
    $stmt->close();
    $cursorType = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE); // သတိပေးချက်သို့မဟုတ်အမှား
    

    output ကိုဆင်တူသည် -

     Warning: mysqli_stmt::attr_get(): Couldn't fetch mysqli_stmt in /var/www/html/index.php on line 4
    

    ဆိုလိုသည်မှာလက်ကိုင်သည်သက်တမ်းကုန်သွားပြီဟုဆိုလိုသည်။

  2. null သို့မဟုတ်မှားယွင်းသောပြန်လာ
    PHP ဗားရှင်းများနှင့် configurations အချို့သည်အမှားတစ်ခုချက်ချင်းပစ်ချခြင်းမဟုတ်ဘဲ မှားယွင်းသော သို့မဟုတ် တရားမဝင်သောအရာများကို ပြန်ပို့ပါ။ ၎င်းသည် Script လုပ်ဆောင်မှုကိုအနှောင့်အယှက်ပေးလိမ့်မည်မဟုတ်ပါ။

ဒါကိုပုံမှန်သုံးနိုင်မလား?

နိဂုံးချုပ်သည် - အမှတ်အသားပြုမှုကိုပိတ်ထားသည်နှင့်အမျှ၎င်း၏ပြည်တွင်းပြည်ဆိုင်ရာနှင့်အရင်းအမြစ်များကိုဖျက်ဆီးပစ်လိုက်ပြီး attr_et () နည်းလမ်းကိုခေါ်ဆိုခြင်းအပါအ 0 င်မည်သည့်စစ်ဆင်ရေးအတွက်မဆိုအသုံးချနိုင်တော့ပါ။ ဤအရာကိုပြုလုပ်ရန်ကြိုးစားခြင်းသည်ဇာတ်ညွှန်းအမှားများသို့မဟုတ်ယုတ္တိနည်းခြွင်းချက်များဖြစ်ပေါ်လိမ့်မည်။

အကြံပြုထားတဲ့အလေ့အကျင့်

  1. လက်ကိုင်ကိုမပိတ်မီလိုအပ်သောဂုဏ်သတ္တိများကိုရယူပါ သင်အမှန်တကယ်အိမ်ခြံမြေတစ်ခုရရန်လိုအပ်ပါက အနီးကပ် ခေါ်ဆိုခြင်းမပြုမီလုပ်ရန်သေချာအောင်လုပ်ပါ။ ဥပမာအားဖြင့်:

     $stmt = $mysqli->prepare("SELECT * FROM users");
    $stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_READ_ONLY);
    $cursorType = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);
    $stmt->close();
    
  2. မအောင်မြင်သောအရာဝတ်ထုများကိုစစ်ဆင်ရေးကိုရှောင်ကြဉ်ပါ စစ်ဆင်ရေးမတိုင်မီလက်ကိုင်၏တရားဝင်မှုကိုစစ်ဆေးပါ။ သငျသညျ code ၏ကြံ့ခိုင်မှုကိုသေချာစေရန်တရားသဖြင့်စီရင်ယုတ္တိဗေဒ encapsult နိုင်ပါတယ်။

  3. ခြွင်းချက်ကိုင်တွယ်ယန္တရားကိုအသုံးချ <br> MySQLi_report (MySQLI_REPORT_ERRORT) အမှားအယွင်းများပေါ်ပေါက်လာသည့်အခါပြ problems နာများလျင်မြန်စွာဖမ်းမိရန်နှင့်နေရာချထားရန် MySQLI_REPORT_STECT)

ဥပမာ: attribute တွေရဖို့ attr_get ကိုသုံးပါ

 <?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "user", "pass", "dbname");

$stmt = $mysqli->prepare("SELECT * FROM articles WHERE status = ?");
$stmt->attr_set(MYSQLI_STMT_ATTR_CURSOR_TYPE, MYSQLI_CURSOR_READ_ONLY);

$cursorType = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);
echo "Cursor Type: " . $cursorType;

$stmt->bind_param("s", $status);
$status = 'published';
$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    echo $row['title'] . "<br>";
}

$stmt->close();
$mysqli->close();
?>

မှတ်ချက်။ Ajax တောင်းဆိုမှုရလဒ်များမှတစ်ဆင့် backend နှင့်အပြန်အလှန်ဆက်သွယ်ရန်သင်စီစဉ်ထားပါက,

အကျဉ်းချုပ်

  • MySQLI_STMT :: Attr_Get () ကို ပိတ်ထားသောကြေညာချက်လက်ကိုင်များတွင်အသုံးမပြုပါ။

  • ဤနည်းလမ်းကိုခေါ်ဆိုခြင်းကလက်ကိုင်သည်တက်ကြွနေဆဲဖြစ်ကြောင်းသေချာစေသင့်သည်။

  • မလျော်ကန်သောအသုံးပြုမှုသည်အစီအစဉ်တည်ငြိမ်မှုကိုထိခိုက်စေသည့်သတိပေးချက်များသို့မဟုတ်ယုတ္တိဗေဒအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။

  • သယံဇာတများသက်တမ်းကိုမှန်ကန်စွာစီမံခြင်းသည် PHP ပရိုဂရမ်အလေ့အကျင့်၏အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။

ဤအပြုအမူများကိုနားလည်ခြင်းနှင့်အကောင်းဆုံးအလေ့အကျင့်များကိုလိုက်လျှောက်ခြင်းအားဖြင့်မလိုအပ်သောအမှားများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီး code အားကြံ့ခိုင်မှုနှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေနိုင်သည်။