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

MySQLI :: stmt_init function ကို အသုံးပြု. Insert ခွဲစိတ်မှုကိုမည်သို့လုပ်ဆောင်ရမည်နည်း။

M66 2025-07-10

PHP တွင် MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုသောအခါ MySQLI extension မှတဆင့်ဒေတာဘေ့စ်နှင့်ဆက်သွယ်နိုင်သည်။ သင် ထည့်သွင်းစဉ်းစား ခြင်းနှင့်ဒေတာဘေ့စ်ရှိထည့်သွင်းထားသောအချက်အလက်များ၏ Self-increment data id ကိုရယူလိုပါကသင်ကအောင်မြင်ရန် MySQLI :: stmt_init function ကိုသုံးနိုင်သည်။ နောက်တစ်ခုကိုဖြည့်စွက်ရန် MySQLI :: stmt_init ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

အဆင့် 1: ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုဖန်တီးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်လိုအပ်သည်။ Code ၏လုံခြုံရေးကိုသေချာစေရန် MySQLI ၏ ORIENT-ORIFT-ORIFTED နည်းလမ်းကိုဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်အကြံပြုသည်။ ဒေတာဘေ့စ်ဆက်သွယ်မှုအတွက်နမူနာကုဒ်ဖြစ်သည်။

 <?php
$host = 'localhost'; // ဒေတာဘေ့စ်အိမ်ရှင်
$user = 'root';      // ဒေတာဘေ့စ်အသုံးပြုသူအမည်
$password = '';      // ဒေတာဘေ့စ်စကားဝှက်
$dbname = 'test';    // ဒေတာဘေ့စ်အမည်

// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$conn = new mysqli($host, $user, $password, $dbname);

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

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

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

 $sql = "INSERT INTO users (username, email) VALUES (?, ?)";

အဆင့် 3: ကြေငြာချက်ကိုအစပြုပါ

ကျွန်ုပ်တို့သည် mySQLI :: stmt_init ကို သုံး. stirect statement assignize ကိုသုံးနိုင်သည်။ ဒီအရာဝတ်ထုကနေတဆင့်ကျနော်တို့ parameters တွေကိုကန့်သတ်ခြင်းနှင့်မေးမြန်းချက်များကိုကွပ်မျက်။

 $stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
    die("SQL အမှား: " . $stmt->error);
}

အဆင့် 4: parameters တွေကို bind

နောက်တစ်ခုက SQL ကြေငြာချက်တွင် placeholder ( ? ) အတွက်အမှန်တကယ်တန်ဖိုးကိုချည်နှောင်ရန်လိုအပ်သည်။ parameter စည်းနှောင်မှုပြီးစီးရန် bind_param နည်းလမ်းကိုသုံးပါ။ ကျွန်ုပ်တို့ထည့်သွင်းလိုသောအသုံးပြုသူအမည်ကို Johdoe နှင့်အီးမေးလ် ဂျွန်ဒူးကောလိပ် ဖြစ်သည်ဆိုပါစို့။

 $username = 'johndoe';
$email = 'johndoe@m66.net';

// parameters တွေကိုချည်ထား
$stmt->bind_param("ss", $username, $email);

အထက်ပါကုဒ်တွင် "အက်စ်အက်စ်အေ" ဆိုသည်မှာကျွန်ုပ်တို့သည် string type parameters နှစ်ခုကိုချည်နှောင်ထားသည်။

အဆင့် 5. SQL ထုတ်ပြန်ချက်များကို Execute လုပ်ပြီး Self-incremented ID ကိုရယူပါ

Insert လုပ်ငန်းစဉ်ဖျော်ဖြေပြီးနောက် MySQL သည်အသစ်ဖြည့်ထားသောမှတ်တမ်းအတွက် Self-incourment id ကိုအလိုအလျောက်ထုတ်လုပ်လိမ့်မည်။ ကျွန်ုပ်တို့သည်ဤ ID ကို Insert_id ပိုင်ဆိုင်မှုမှတဆင့်ရနိုင်သည်။

 if ($stmt->execute()) {
    echo "အသစ်သောစံချိန်တင်သွင်း。ထည့်ပါ ID အတွက်: " . $conn->insert_id;
} else {
    echo "မအောင်မြင်ပါ: " . $stmt->error;
}

ဤတွင် $ Conn-> Insert_id သည် Insert_id သည် Inserted Record ၏ AutoleOngreement ID ကိုပြန်ပို့လိမ့်မည်။

အဆင့် 6: ဆက်သွယ်မှုကိုပိတ်ပါ

Insert စစ်ဆင်ရေးကိုဖျော်ဖြေပြီးနောက်ကြေညာချက်နှင့်ဒေတာဘေ့စ် connection ကိုပိတ်ရန်မမေ့ပါနှင့်။

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

ကုဒ်ကိုအပြည့်အဝ

MySQLI :: stmt_init ကို အသုံးပြု. Insert စစ်ဆင်ရေးကိုမည်သို့လုပ်ဆောင်ရမည်ကိုပြသသည့်အပြည့်အဝနမူနာကုဒ်ဖြစ်သည်။

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$dbname = 'test';

$conn = new mysqli($host, $user, $password, $dbname);

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

$sql = "INSERT INTO users (username, email) VALUES (?, ?)";

$stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
    die("SQL အမှား: " . $stmt->error);
}

$username = 'johndoe';
$email = 'johndoe@m66.net';

$stmt->bind_param("ss", $username, $email);

if ($stmt->execute()) {
    echo "အသစ်သောစံချိန်တင်သွင်း。ထည့်ပါ ID အတွက်: " . $conn->insert_id;
} else {
    echo "မအောင်မြင်ပါ: " . $stmt->error;
}

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