PHP တွင် MySQLI_STMT :: Revodadata ကို ပြင်ဆင်ထားသည့်ဖော်ပြချက်နှင့်ကိုက်ညီသည့် Metadata (I.E. , Field ဖွဲ့စည်းပုံ) ကိုရရှိရန်အတွက်အသုံးပြုသောနည်းလမ်းဖြစ်သည်။ ဤနည်းလမ်းသည် Query ရလဒ်များအတွက်ကော်လံအချက်အလက်များကို dynamically dynamically for query လုပ်ခြင်းနှင့်စည်းနှောင်ကော်လံများကဲ့သို့သောနောက်ထပ်စစ်ဆင်ရေးများပြုလုပ်ရန်အလွန်အသုံးဝင်သည်။ ရလဒ်တည်ဆောက်ပုံကိုရရှိရန် Lever_metadata ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့် code perment တစ်ခုပြသပါမည်။
ပထမ ဦး စွာ MySQLI မှတဆင့်ဒေတာဘေ့စ်ကိုဆက်သွယ်ရန်လိုအပ်သည်။ MySQL ဒေတာဘေ့စ်ရှိပြီးသားဆိုပါစို့။ ဆက်သွယ်မှုအတွက်အခြေခံကုဒ်ဖြစ်သည်ဆိုပါစို့။
<?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$dbname = 'test_database';
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($host, $username, $password, $dbname);
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
?>
ကျွန်ုပ်တို့တွင်ဖွဲ့စည်းတည်ဆောက်ပုံတွင်ကွက်လပ်သုံးခုပါ 0 င ် သည့်ဇယား သုံးခု ရှိသည်ဆိုပါစို့ ။ ပထမ ဦး စွာစုံစမ်းမှုကြေညာချက်ကိုပြင်ဆင်ပါ။
$sql = "SELECT id, name, email FROM users";
$stmt = $conn->prepare($sql);
if ($stmt === false) {
die('MySQL prepare failed: ' . $conn->error);
}
ရလဒ်အနေဖြင့် Metadata ရရန် MySQLI_STMMT :: Revodadata နည်းလမ်းကိုအသုံးပြုသည်။ ဤနည်းလမ်းသည် MySQLI_RESULT အရာဝတ်ထုတစ်ခု၏ရှာဖွေမှုရလဒ်၏အချက်အလက်များအချက်အလက်များပါ 0 င်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်လယ်ကွင်းအချက်အလက်များကိုကြည့်ရှုခြင်းနှင့်ကွင်းတစ်ခုစီ၏အမည်ကိုထုတ်ပေးလိမ့်မည်။
$result_metadata = $stmt->result_metadata();
if ($result_metadata === false) {
die('ရလဒ်ကိုမရရှိနိုင် Metadata');
}
$columns = [];
while ($column = $result_metadata->fetch_field()) {
$columns[] = $column->name;
}
echo "စုံစမ်းမှုရလဒ်၏လယ်ပြင်အမည်:<br>";
foreach ($columns as $column_name) {
echo $column_name . "<br>";
}
PHP variable တစ်ခုစီအတွက်ကော်လံတစ်ခုချင်းစီကိုချည်နှောင်ရန် MySQLI_STMT :: bind_result နည်းလမ်းကိုသင်အသုံးပြုနိုင်သည်။ ဤတွင်မည်ကဲ့သို့ကော်လံကိုမည်သို့ချည်နှောင်ရန်နှင့်ရလဒ်ကိုရနိုင်ပုံဥပမာတစ်ခုဖြစ်သည်။
// Bind ကော်လံ
$stmt->bind_result($id, $name, $email);
// တစ် ဦး စုံစမ်းမှု execute
$stmt->execute();
// ရလဒ်များကိုရယူပါ
while ($stmt->fetch()) {
echo "ID: $id, Name: $name, Email: $email <br>";
}
// ကြေငြာချက်
$stmt->close();
အထက်ပါအစိတ်အပိုင်းများကိုအတူတကွဆောင်သောကုဒ်ကိုအပြည့်အဝကုဒ်ပါ။
<?php
$host = 'localhost';
$username = 'root';
$password = 'password';
$dbname = 'test_database';
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($host, $username, $password, $dbname);
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
$sql = "SELECT id, name, email FROM users";
$stmt = $conn->prepare($sql);
if ($stmt === false) {
die('MySQL prepare failed: ' . $conn->error);
}
// ရလဒ်များကိုရယူပါ集元数据
$result_metadata = $stmt->result_metadata();
if ($result_metadata === false) {
die('ရလဒ်ကိုမရရှိနိုင် Metadata');
}
$columns = [];
while ($column = $result_metadata->fetch_field()) {
$columns[] = $column->name;
}
echo "စုံစမ်းမှုရလဒ်၏လယ်ပြင်အမည်:<br>";
foreach ($columns as $column_name) {
echo $column_name . "<br>";
}
// Bind ကော်လံ
$stmt->bind_result($id, $name, $email);
// တစ် ဦး စုံစမ်းမှု execute
$stmt->execute();
// ရလဒ်များကိုရယူပါ
while ($stmt->fetch()) {
echo "ID: $id, Name: $name, Email: $email <br>";
}
// ကြေငြာချက်
$stmt->close();
// ဆက်သွယ်မှုကိုပိတ်ပါ
$conn->close();
?>
MySQLI_STMT :: Rever_metadata ကိုအလွယ်တကူ ရရှိနိုင်သည့်ရလဒ်ကိုအလွယ်တကူရရှိနိုင်သည့်ရလဒ်ကိုအလွယ်တကူရယူနိုင်ရန်။ လယ်ကွင်းအချက်အလက်များကိုရယူပြီးသည့်နောက်တွင်သင်သည်ကော်လံများကိုလိုအပ်သလို dvice ကိုချိတ်ဆက်ပြီးစုံစမ်းမှုရလဒ်များကိုထုတ်ယူနိုင်သည်။ ရှုပ်ထွေးသောမေးမြန်းချက်များနှင့်ဆက်စပ်သောစာမျက်နှာများကိုထုတ်လုပ်သည့်အခါ၎င်းသည်အလွန်အသုံးဝင်သည်။