လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Fetch_firefifields ၏ပြီးပြည့်စုံသောအသုံးပြုမှုဖြစ်စဉ်သည်အဘယ်နည်း။ ပြင်ဆင်ခြင်းနှင့် bind_result ဆောင်းပါးတစ်ပုဒ်တွင်ရှင်းလင်းစွာရှင်းပြပါ

Fetch_firefifields ၏ပြီးပြည့်စုံသောအသုံးပြုမှုဖြစ်စဉ်သည်အဘယ်နည်း။ ပြင်ဆင်ခြင်းနှင့် bind_result ဆောင်းပါးတစ်ပုဒ်တွင်ရှင်းလင်းစွာရှင်းပြပါ

M66 2025-06-23

PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများသည် developer များနေ့စဉ်အလုပ်၏မရှိမဖြစ်လိုအပ်သောအစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ စွမ်းဆောင်ရည်တိုးတက်စေရန်နှင့် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန် MySQLI မှတိုးချဲ့ထားသောပြင်ဆင်ထားသောထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းသည်အလွန်အမင်းအကြံပြုထားသည့်နည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးသည် MySQLI Fetch_firefields ၏အသုံးပြုမှုလုပ်ငန်းစဉ်ကိုအသေးစိတ်မိတ်ဆက်ပေးမည်။ PHP တွင် ပြင်ဆင်ခြင်း နှင့် bind_result

1 ။ နည်းလမ်း ပြင်ဆင်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုတစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည် SQL ကြေငြာချက်ကိုပြင်ဆင်ရန် ပြင်ဆင်ရန် နည်းလမ်းကိုသုံးနိုင်သည်။ ဤနည်းလမ်းသည် SQL query ကို parameter တစ်ခုအဖြစ်လက်ခံပြီးပြင်ဆင်ထားသည့်ကြေညာချက်အရာဝတ်ထုကိုပြန်ပို့သည်။

 $mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

$query = "SELECT id, name, email FROM users WHERE active = ?";
$stmt = $mysqli->prepare($query);

အထက်ဖော်ပြပါကုဒ်များတွင် ကြိုတင်ပြင်ဆင်ထားသော နည်းလမ်းသည် SQL ကြေငြာချက်ကိုကြိုတင်ထုတ်ဖော်ပြောဆိုခြင်းနှင့်နောက်ဆက်တွဲ parameter ကိုပြင်ဆင်ရန်ပြင်ဆင်သည်။

2 ။ bind parametersk ( bind_param )

ထို့နောက်ကျွန်ုပ်တို့သည် parameters တွေကိုချည်ရန်လိုအပ်သည်။ bind_param နည်းလမ်းသည်အမှန်တကယ် parameter တန်ဖိုးကို SQL ကြေငြာချက်သို့ချည်နှောင်နိုင်သည်။ ဤဥပမာတွင်မေးမြန်းချက်သည် တက်ကြွသော လယ်ကွင်းများမှတဆင့်အချက်အလက်များကိုစစ်ထုတ်သည်, ထို့ကြောင့်ကျွန်ုပ်တို့သည် parameter ကိုချည်နှောင်ရန်လိုအပ်သည်

 $active = 1;
$stmt->bind_param("i", $active);  // "i"Integer အမျိုးအစားကိုညွှန်ပြ

bind_param နည်းလမ်း၏ပထမဆုံး pareter သည် SQL ကြေငြာချက်တွင် parameter တစ်ခုစီကိုကိုယ်စားပြုသည့် string တစ်ခုဖြစ်သည်။ ဘုံအမျိုးအစားများမှာ -

  • i : ကိန်း

  • D : နှစ်ဆတိကျသောမျောနေသောအချက်များ

  • S : string ကို

  • B : Blob အမျိုးအစားဒေတာ

ဤဥပမာတွင်ကျွန်ုပ်တို့သည်ကိန်းဂဏန်းအမျိုးအစား parameter ( $ action ) ကိုချည်နှောင်ထားသည်။

3 ။ စုံစမ်းမှုကို Execute လုပ်ပါ ( Execute )

parameters တွေကို binding ပြီးနောက် SQL ကြေငြာချက်ကို execute method မှတဆင့် execute method မှတဆင့် execute လုပ်နိုင်သည်။

 $stmt->execute();

ယခုအချိန်တွင် SQL query ကိုကွပ်မျက်ခံရလိမ့်မည်, သို့သော်ဒေတာများကိုမပြန်သေးပါ။ ကျွန်ုပ်တို့သည် query ၏ဖွဲ့စည်းပုံကို Fetch_firefifields မှတစ်ဆင့်ရယူရန်လိုအပ်ပြီး Bind_Result မှတစ်ဆင့်ကော်လံတစ်ခုစီ၏တန်ဖိုးကိုချည်နှောင်ရန်လိုအပ်သည်။

4 ။ လယ်ပြင်သတင်းအချက်အလက်ကိုရယူပါ ( Fetch_fields )

Fetch_fields နည်းလမ်းသည်ကော်လံအမည်, အမျိုးအစားစသည်ဖြင့်ရှာဖွေမှုရလဒ်များအပါအ 0 င်ရှာဖွေမှုရလဒ်၏နယ်ပယ်သတင်းအချက်အလက်များကိုရရှိနိုင်သည်။

 $fields = $stmt->fetch_fields();
foreach ($fields as $field) {
    echo "Field Name: " . $field->name . "<br>";
    echo "ကွင်းဆင်းအမျိုးအစား: " . $field->type . "<br>";
}

အထက်ပါကုဒ်သည်ကွင်းတစ်ခုစီ၏အမည်နှင့်အမျိုးအစားကိုထုတ်ပေးလိမ့်မည်။ Fetch_fields method မှပြန်လာသောကွင်းဆင်းအရာဝတ်ထုတွင်ဒေတာဘေ့စ်စားပွဲ၏ဖွဲ့စည်းပုံသတင်းအချက်အလက်ကိုရယူရန်တည်ဆောက်သူများကိုလွယ်ကူချောမွေ့စေသည်။

5 ။ ရလဒ် variable ကိုခညျြနှောငျ ( bind_result )

စုံစမ်းမှုကိုအကောင်အထည်ဖော်ပြီးနောက်, query from query frother ၏ကော်လံကို Bind_Result Method မှတဆင့် PHP variable ကိုခညျြနှောငျရန်လိုအပ်သည်။ bind_result နည်းလမ်းသည် variable များကိုဖြတ်သန်းခြင်းဖြင့်သတ်မှတ်ခြင်းဖြင့်အချက်အလက်များကိုအချက်အလက်များကိုထုတ်ယူရန်ခွင့်ပြုသည်။

 $stmt->bind_result($id, $name, $email);

ဤနေရာတွင်ကျွန်ုပ်တို့သည် query ရလဒ်ရှိ ID , အမည် နှင့် အီးမေးလ်များ ကို $ ID , $ အမည် နှင့် $ email variable များကိုအသီးသီးအသီးသီးတွင်ချည်နှောင်ထားသည်။

6 ။ ရလဒ်ကိုရယူပါ ( Fetch )

ရလဒ် variable ကို binding ပြီးနောက်, ကျနော်တို့ query ရလဒ်များကိုဖွင့်လှစ်ရန် ferch နည်းလမ်းကိုသုံးနိုင်သည်။

 while ($stmt->fetch()) {
    echo "ID: $id, Name: $name, Email: $email<br>";
}

ရယူခြင်း နည်းလမ်းသည်ဒေတာအတန်းအတန်းကိုအောင်မြင်စွာရရှိခြင်းရှိမရှိညွှန်ပြသည့် boolean value ကိုပြန်ပို့သည်။ အကယ်. ဝယ်ယူမှုအောင်မြင်လျှင်လက်ရှိအတန်း၏ဒေတာကိုခညျြနှောငျ variable မှတဆင့်ဝင်ရောက်နိုင်ပါတယ်။

7 ။ ပိတ်ပစ်ထုတ်ပြန်ချက်များနှင့်ဆက်သွယ်မှု

စစ်ဆင်ရေးအားလုံးပြီးပြည့်စုံသောအခါအရင်းအမြစ်များကိုအခမဲ့ပေးရန်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များနှင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုပိတ်ရန်သတိရပါ။

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

8 ။ ပြီးပြည့်စုံသောဥပမာ

အထက်ပါအဆင့်များကိုပေါင်းစည်းပါ, နောက်ဆုံးပြည့်စုံသောကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

$query = "SELECT id, name, email FROM users WHERE active = ?";
$stmt = $mysqli->prepare($query);

$active = 1;
$stmt->bind_param("i", $active);

$stmt->execute();

$fields = $stmt->fetch_fields();
foreach ($fields as $field) {
    echo "Field Name: " . $field->name . "<br>";
    echo "ကွင်းဆင်းအမျိုးအစား: " . $field->type . "<br>";
}

$stmt->bind_result($id, $name, $email);
while ($stmt->fetch()) {
    echo "ID: $id, Name: $name, Email: $email<br>";
}

$stmt->close();
$mysqli->close();
?>
  • သက်ဆိုင်သောတက်(ဂ်)များ:

    fetch_fields