လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: stmt_init function ကိုမှတစ်ဆင့်ဒေတာဘေ့စ်လယ်ကွင်း၏ metadata ကိုဘယ်လိုရနိုင်မလဲ။

MySQLI :: stmt_init function ကိုမှတစ်ဆင့်ဒေတာဘေ့စ်လယ်ကွင်း၏ metadata ကိုဘယ်လိုရနိုင်မလဲ။

M66 2025-07-18

PHP တွင်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ကိုလည်ပတ်ရန် extension များကိုအသုံးပြုသောအခါတစ်ခါတစ်ရံတွင်ကျွန်ုပ်တို့သည်တစ်ခါတစ်ရံတွင်စုံစမ်းမှုရလဒ်ကိုရရှိရန်သာမကလယ် နာမည် ,

ဤဆောင်းပါးသည် MySQLI :: stmt_init ကို အသုံးပြုရမည်ကိုရှင်းပြရန်တိကျသောဥပမာတစ်ခုကို အသုံးပြု . ပြင်ဆင်ရန် () နှင့် ရလဒ် alvetadata ()) ကို ပေါင်းစပ်ရန် Metadata ကိုရယူရန်နည်းလမ်းများနှင့်ပေါင်းစပ်ရန်နည်းလမ်းများကိုရှင်းပြရန်ရှင်းပြပါမည်။

အဆင့် 1 - ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်ပါ

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

 <?php
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

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

အဆင့် 2 - SQL ထုတ်ပြန်ချက်များကို အစပြု. ပြင်ဆင်ပါ

နောက်တစ်ခုက stmt_init () ကိုသုံးပြီး MySQLI_STMT အရာဝတ်ထုတစ်ခုကိုစတင်ရန်နှင့် ပြင်ဆင်ခြင်း () နည်းလမ်းကို အသုံးပြု. SQL query string ကိုပြင်ဆင်ရန် SQL query string ကိုပြင်ဆင်ရန်။

 <?php
$stmt = $mysqli->stmt_init();

if (!$stmt->prepare('SELECT id, name, email FROM users WHERE status = ?')) {
    die('Preprocessing မအောင်မြင်ပါ: ' . $stmt->error);
}
?>

အဆင့် 3: parameters တွေကိုချည်နှောင်ခြင်းနှင့်စုံစမ်းမှုအကောင်အထည်ဖော်ပါ

အသုံးပြုသူကို status = 'activit' ဖြင့်မေးမြန်းလိုပါသည်ဆိုပါစို့။

 <?php
$status = 'active';
$stmt->bind_param('s', $status);

if (!$stmt->execute()) {
    die('Execution မအောင်မြင်ပါ: ' . $stmt->error);
}
?>

အဆင့် 4: Metadata ကိုရယူပါ

ယခုအချက်မှာဤအချက်သည်ဤတွင်ရောက်ရှိနေပြီဖြစ်သည်။ ကျွန်ုပ်တို့သည်ရလဒ်ကောင်းများအတွက် Field Metadata ကိုရရှိရန် ရလဒ် alvetadata () နည်းလမ်းကိုကျွန်ုပ်တို့ခေါ်ဆိုသည်။

 <?php
$metadata = $stmt->result_metadata();

if ($metadata) {
    while ($field = $metadata->fetch_field()) {
        echo "Field Name: " . $field->name . "<br>";
        echo "ကွင်းဆင်းအမျိုးအစား: " . $field->type . "<br>";
        echo "အမြင့်ဆုံးအရှည်: " . $field->max_length . "<br>";
        echo "<hr>";
    }
    $metadata->free();
} else {
    echo "Metadata မရှိပါ。";
}
?>

ဤနေရာတွင် Fetch_field () သည် ကွက်လပ်အသေးစိတ်အချက်အလက်များပါ 0 င်သောအရာဝတ်ထုတစ်ခုကိုပြန်ပေးလိမ့်မည်။

  • အမည် →ကွင်းဆင်းအမည်

  • type → field type (ဂဏန်းကုဒ်, လက်စွဲကိုနှိုင်းယှဉ်ဖို့လိုသည်)

  • Max_Length → field အများဆုံးအရှည် (မှတ်ချက် - ရလဒ်အဘို့အထိရောက်သော)

အဆင့် 5. အရင်းအမြစ်များကိုအခမဲ့ပေးပြီးဆက်သွယ်မှုကိုပိတ်ပါ

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

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

နမူနာ output ကို

Quality သည် Fields ID (3) ခု, အမည် နှင့် အီးမေးလ် , output ကိုအောက်ပါအတိုင်းဖြစ်လိမ့်မည်ဟုယူဆသည်။

 Field Name: id
ကွင်းဆင်းအမျိုးအစား: 3
အမြင့်ဆုံးအရှည်: 0
-----------------------
Field Name: name
ကွင်းဆင်းအမျိုးအစား: 253
အမြင့်ဆုံးအရှည်: 0
-----------------------
Field Name: email
ကွင်းဆင်းအမျိုးအစား: 253
အမြင့်ဆုံးအရှည်: 0

သတိပြုရန်မှာ လယ်ကွင်းအမျိုးအစား ကိန်းဂဏန်းတန်ဖိုးသည် MySQL_TYPE_Long နှင့် 253 သည် MySQL_TYPE_VARGESSHATES ကို ကိုယ်စားပြုသည်။

အကျဉ်းချုပ်