PHP တွင် MySQL ဒေတာဘေ့စ်ကိုအသုံးပြုသောအခါ MySQLI extension မှတဆင့်ဒေတာဘေ့စ်နှင့်ဆက်သွယ်နိုင်သည်။ သင် ထည့်သွင်းစဉ်းစား ခြင်းနှင့်ဒေတာဘေ့စ်ရှိထည့်သွင်းထားသောအချက်အလက်များ၏ Self-increment data id ကိုရယူလိုပါကသင်ကအောင်မြင်ရန် MySQLI :: stmt_init function ကိုသုံးနိုင်သည်။ နောက်တစ်ခုကိုဖြည့်စွက်ရန် MySQLI :: stmt_init ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်လိုအပ်သည်။ 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);
}
?>
ထည့်သွင်းမှု တစ်ခုပြုလုပ်ရန်ပြင်ဆင်နေသည့်အခါကျွန်ုပ်တို့သည်ပထမ ဦး စွာ SQL ကြေငြာချက်တစ်ခုကိုရေးရန်လိုအပ်သည်။ MySQLI :: stmt_init function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ပြင်ဆင်ထားသောကြေညာချက်ကိုစတင်နိုင်ပါသည်။ အောက်ပါဥပမာတွင်အသုံးပြုသူအသစ်ကို အသုံးပြုသူ အသစ်ထဲသို့ထည့်ပါလိမ့်မည်။
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
ကျွန်ုပ်တို့သည် mySQLI :: stmt_init ကို သုံး. stirect statement assignize ကိုသုံးနိုင်သည်။ ဒီအရာဝတ်ထုကနေတဆင့်ကျနော်တို့ parameters တွေကိုကန့်သတ်ခြင်းနှင့်မေးမြန်းချက်များကိုကွပ်မျက်။
$stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
die("SQL အမှား: " . $stmt->error);
}
နောက်တစ်ခုက SQL ကြေငြာချက်တွင် placeholder ( ? ) အတွက်အမှန်တကယ်တန်ဖိုးကိုချည်နှောင်ရန်လိုအပ်သည်။ parameter စည်းနှောင်မှုပြီးစီးရန် bind_param နည်းလမ်းကိုသုံးပါ။ ကျွန်ုပ်တို့ထည့်သွင်းလိုသောအသုံးပြုသူအမည်ကို Johdoe နှင့်အီးမေးလ် ဂျွန်ဒူးကောလိပ် ဖြစ်သည်ဆိုပါစို့။
$username = 'johndoe';
$email = 'johndoe@m66.net';
// parameters တွေကိုချည်ထား
$stmt->bind_param("ss", $username, $email);
အထက်ပါကုဒ်တွင် "အက်စ်အက်စ်အေ" ဆိုသည်မှာကျွန်ုပ်တို့သည် string type parameters နှစ်ခုကိုချည်နှောင်ထားသည်။
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 ကိုပြန်ပို့လိမ့်မည်။
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();
?>