လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stmtt_init အတွက် null တန်ဖိုးများကိုကိုင်တွယ်ရန်မှန်ကန်သောနည်းလမ်း

stmtt_init အတွက် null တန်ဖိုးများကိုကိုင်တွယ်ရန်မှန်ကန်သောနည်းလမ်း

M66 2025-05-29

MySQL နှင့်အတူအပြန်အလှန်ဆက်သွယ်သည့်အခါ MySQLI :: stmt_init သည် persqli :: stmt_init ကို preprocessing statement address ကိုစတင်ရန်အသုံးပြုသောအသုံးများသောထုတ်ပြန်ချက်များကို Proprocessing ထုတ်ပြန်ချက်များကိုအပြန်အလှန်ဆက်သွယ်ရန်အဆင်ပြေသောနည်းလမ်းဖြစ်သည်။ သို့သော် developer များက မူ ဒီဇိုင်း တန်ဖိုးများကိုဒေတာဘေ့စ်များတွင်ကိုင်တွယ်သောအခါစိန်ခေါ်မှုများအချို့ကိုကြုံတွေ့ရနိုင်သည်။

1 ။ MySQLI :: stmt_init function ကိုနားလည်ပါ

ပထမ ဦး စွာ MySQLI :: stmt_init သည် MySQLI_STMT အရာဝတ်ထုကို အစပြု. MySQLI_STMT ဥပမာကိုပြန်ပို့ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းကိုမကြာခဏအသုံးမ 0 င်သောထုတ်ပြန်ချက်များကိုဖန်တီးရန်နှင့်လုပ်ဆောင်ရန်အသုံးပြုလေ့ရှိသည်။

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");
$stmt = $mysqli->stmt_init();
?>

2 ။ parameters တွေကိုချည်ရန် preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုပါ

MySQLI_STMT မှ MySQLI_ST_INIT မှဖန်တီးထားသော MYSQLI_INIT မှဖန်တီးထားသော bind_param function ကို အသုံးပြု. input parameters များကို binding bindi ။ binding parameters တွေကို binding parameters တွေကိုလုပ်တဲ့အခါ developer တွေဟာ parameter အမျိုးအစားကိုသတ်မှတ်ဖို့လိုတယ်,

  • ငါ ကိန်းဂဏန်းကိုကိုယ်စားပြုတယ်

  • d floating အမှတ်နံပါတ်ကိုကိုယ်စားပြုတယ်

  • s ဆိုသည်မှာ string ကိုဆိုလိုသည်

  • B သည် binary data ကိုကိုယ်စားပြုသည်

အချို့ဖြစ်ရပ်များတွင် Parameter Value သည်ဤအချိန်တွင်အထူးကုသရန်လိုအပ်သည့် null ဖြစ်နိုင်သည်။

3 ။ NULL တန်ဖိုးများကိုဘယ်လိုကိုင်တွယ်ရမလဲ။

MySQL တွင် NULL သည်အထူးတန်ဖိုးတစ်ခုဖြစ်သည်။ ထို့ကြောင့် database သို့ NULL ကို ဖြတ်သန်းသောအခါသတိထားရမည်။ ပုံမှန်အားဖြင့်, bind_param ကို အသုံးပြုသောအခါ parameter value သည် null ဖြစ်လျှင်၎င်းသည် SQL Null သို့အလိုအလျောက်ပြောင်းလဲလိမ့်မည်မဟုတ်ပါ။ Bind_param မှတဆင့်အထူးလုပ်ဆောင်ရန်လိုအပ်သည်။

3.1 bind_param ကိုအသုံးပြုပြီး null value ကိုဖြတ်သန်းခြင်း

ကျွန်ုပ်တို့သည်စံချိန်တင်တစ်ခုထည့်သွင်းရန်လိုအပ်သည်ဆိုပါစို့။ အချို့လယ်ကွင်းများတွင် null တန်ဖိုးများရှိသည်။ Binding Parametersters သည်နယ်ပယ်တစ်ခု၏တန်ဖိုးသည် တရား 0 င် ဖြစ်ခဲ့လျှင်, bind_param ကို အသုံးပြုသော အခါ Null ကို အသုံးပြု. NULL ကိုအသုံးပြု သည်

 <?php
// ဆက်သွယ်မှုကိုစတင်ပါ
$mysqli = new mysqli("localhost", "user", "password", "database");

// ကြိုတင်ကြေငြာချက်တစ်ခုဖန်တီးပါ
$stmt = $mysqli->stmt_init();

// ပြင်ဆင်ထားSQLမေးမြန်း
$sql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)";

if ($stmt->prepare($sql)) {
    $name = "John Doe";
    $age = null;  // NULL အဘိုး
    $email = "john.doe@m66.net";

    // အတွက် NULL အဘိုး使用特殊绑定
    $stmt->bind_param("sis", $name, $age, $email);

    // 执行မေးမြန်း
    $stmt->execute();
}
?>

3.2 null တန်ဖိုးများကိုအထူးကိုင်တွယ်

NULL values ​​များကို bind_param တွင်မှန်ကန်စွာ ဖြတ်သန်းရန် PHP သည် Null parameters များကိုထောက်ခံအားပေးမှုပေးရန် Null parameters များကိုထောက်ပံ့ပေးသည် Null တန်ဖိုးများအတွက်ကျွန်ုပ်တို့သည်၎င်းတို့ကို function သို့ဖြတ်သန်းသွားကြောင်းနှင့်အမျိုးအစားလိုအပ်ချက်များကိုသတ်မှတ်ရန်လိုအပ်သည်။

 <?php
// နမူနာ:ကိုင်တွယ်ဖြေရှင်းသည် NULL အဘိုး的代码
$null_value = null;
$stmt->bind_param("s", $null_value);
$stmt->execute();
?>

4 ။ မှတ်စုများ

  • Null ဖြတ်သန်းသောအခါ variable အမျိုးအစား : Null ဖြတ်သန်းသည့်အခါ NULL သည်သက်ဆိုင်ရာ SQL အမျိုးအစားနှင့်ကိုက်ညီကြောင်းသေချာပါစေ။ ဥပမာအားဖြင့်လယ်ကွင်းသည်ကိန်းဂဏန်းအမျိုးအစားဖြစ်လျှင် Bind_param အမျိုးအစားသည် ကျွန်ုပ် ဖြစ်သင့်သည်။

  • Different () ကိုဆုံးဖြတ်ရန် () ကိုအသုံးပြုပါ ။ အကယ်. variable တစ်ခုသည် Null ဟုတ်မဟုတ်ဆုံးဖြတ်ရန်သင် is is is dialog () ကို သုံးနိုင်သည်။

 <?php
$age = null;
if (isset($age)) {
    $stmt->bind_param("i", $age);
} else {
    $stmt->bind_param("i", $null_value);
}
?>

5 ။ အကျဉ်းချုပ်

MySQLI :: stmt_init နှင့် bind_param ကို အသုံးပြုသောအခါ null တန်ဖိုးများကိုကိုင်တွယ်ရန်အထူးဂရုပြုရန်အထူးဂရုပြုရန်လိုအပ်သည်။ Null Values ​​ကိုမှန်ကန်စွာကောက်ယူရန်နှင့်သင့်လျော်သော SQL အမျိုးအစားနှင့်ကိုက်ညီရန်အရေးကြီးသည်။ အကယ်. ကုသမှုမခံပါက၎င်းသည်ပျက်ကွက်မှုသို့မဟုတ်မလိုလားအပ်သောအပြုအမူများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါး၏နိဒါန်းမှတစ်ဆင့်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် NULL တန်ဖိုးများကိုမှန်ကန်စွာကိုင်တွယ်နိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။