လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: stmt_init function ကို သုံး. SQL ကြိုတင်ကြေငြာချက်ကိုကြိုတင်ပြင်ဆင်ထားသည့်ကြေညာချက်ကိုမည်သို့ပြင်ဆင်ရမည်နည်း။

MySQLI :: stmt_init function ကို သုံး. SQL ကြိုတင်ကြေငြာချက်ကိုကြိုတင်ပြင်ဆင်ထားသည့်ကြေညာချက်ကိုမည်သို့ပြင်ဆင်ရမည်နည်း။

M66 2025-06-26

PHP တွင် MySQLI extension ကိုအသုံးပြုခြင်းသည်ဒေတာဘေ့စ်နှင့် ဆက်သွယ်. မေးမြန်းချက်များကိုကွပ်ကဲသည်။ လုံခြုံရေးကိုတိုးတက်စေရန်နှင့် SQL injection ကိုကာကွယ်ရန် MySQLI သည်ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးတွင် MySQLI :: Stmt_init function ကိုအသုံးပြုရန်နှင့် SQL preprocessing statement ကိုပြင်ဆင်ရန်နှင့် Exproade လုပ်ရန် MySQLI :: stmt_init function ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

Prosocessing ထုတ်ပြန်ချက်များဘာတွေလုပ်နေလဲ

ကြိုတင်မဆိုထုတ်ပြန်ချက်များသည်ဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုနည်းလမ်းဖြစ်သည်။ ၎င်းတို့သည် SQL ထုတ်ပြန်ချက်များကိုဒေတာများမှခွဲခြားနိုင်သည်။ ပထမ ဦး ဆုံး SQL query query ၏ template ကိုဒေတာဗေ့စ်သို့ပေးပို့ခြင်းနှင့်စုံစမ်းမှုအတွက် parameter တွေကို binding ။ ထိုသို့ပြုလုပ်ခြင်းသည် SQL Injection တိုက်ခိုက်မှုနှင့်လုံခြုံရေးကိုတိုးတက်စေသည်။

MySQLI :: stmt_init function ကိုမိတ်ဆက်ခြင်း

MySQLI :: Stmtt_init သည် MySQLI အတန်းထဲတွင် MySQLI အတန်းရှိနည်းလမ်းတစ်ခုဖြစ်သည်။ MySQLI_STMT အရာဝတ်ထုကို parameters တွေကိုချည်နှောင်ပြီး SQL Queries ကို execute လုပ်ပေးနိုင်အောင်အသုံးပြုနိုင်သည်။

SQL Preprocessing ထုတ်ပြန်ချက်များကိုပြင်ဆင်ရန်နှင့် Execute လုပ်ရန်အဆင့်များ

MySQLI :: stmt_init function ကို သုံး. SQL Preprocessing ထုတ်ပြန်ချက်များကိုပြင်ဆင်ရန်နှင့် Execute လုပ်ရန်အဆင့်များမှာ -

1 ။ ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ

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

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);

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

2 ။ Proprocessing ထုတ်ပြန်ချက်များကိုအစပြုပါ

MySQLI :: stmt_init function ကိုအသုံးပြုပြီး preprocessing statembert အသစ်တစ်ခုကိုစတင်ပါ။ ဤအရာဝတ်ထုကို parameters တွေကိုချည်နှောင်ခြင်းနှင့် SQL မေးမြန်းချက်များကို execute လုပ်ဖို့အသုံးပြုလိမ့်မည်။

 <?php
// Preprocessing ထုတ်ပြန်ချက်များကိုအစပြု
$stmt = $conn->stmt_init();

// ကန ဦး အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if (!$stmt) {
    die("Preprocessing ကြေငြာချက်စတင်ခြင်းမအောင်မြင်ပါ: " . $conn->error);
}
?>

3 ။ SQL query ကိုပြင်ဆင်ပါ

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

 <?php
$sql = "SELECT * FROM users WHERE email = ?";
$stmt->prepare($sql);
?>

4 ။ parameters တွေကိုခညျြနှောငျ

SQL query တွင် Placeholders ( ? ) တွင် variable များကို crolles များကိုချည်နှောင်ရန် bind_param နည်းလမ်းကိုအသုံးပြုပါ။ ဤဥပမာတွင်ကျွန်ုပ်တို့သည် string type အမျိုးအစား (user's email) ၏ parameter ကိုချည်နှောင်လိမ့်မည်။

 <?php
$email = "user@example.com";
$stmt->bind_param("s", $email); // "s" string ကိုအမျိုးအစားကိုကိုယ်စားပြုတယ်
?>

5 ။ quent ကို Execute

SQL query ကို execute လုပ်ရန် Execute နည်းလမ်းကိုသုံးပါ။

 <?php
$stmt->execute();
?>

6 ။ စုံစမ်းမှုရလဒ်များကိုရယူပါ

ရှာဖွေမှုကိုအောင်မြင်စွာကွပ်မျက်ခံရပြီးနောက် ရလဒ်ကို ရရှိရန် Get_result Method ကိုသုံးနိုင်သည်။

 <?php
$result = $stmt->get_result();

// ရလဒ်များကိုရယူပါနှင့်သူတို့ကိုပြသပါ
while ($row = $result->fetch_assoc()) {
    echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
?>

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

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

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

အကျဉ်းချုပ်

အထက်ပါအဆင့်များမှတစ်ဆင့် MySQLI :: stmt_init function ကို အသုံးပြု. SQL Preprocessing ဟူသောကြေညာချက်ကိုအောင်မြင်စွာပြင်ဆင်နိုင်ပြီးလုပ်ဆောင်နိုင်သည်။ Preprocessing ထုတ်ပြန်ချက်များသည် Code Security ကိုတိုးတက်စေရန်သာမက SQL Injection Attack ကိုတားဆီးနိုင်သည်,

 $url = "https://api.m66.net/data"; // ဒိုမိန်းအမည်ကိုအစားထိုးပါ m66.net
  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli SQL