လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Proprocessing Statements မအောင်မြင်,

Proprocessing Statements မအောင်မြင်,

M66 2025-06-05

Proscessing Statements သည် Database Operations အတွက် PHP ကိုအသုံးပြုသောအခါ SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်လုံခြုံစိတ်ချရသောနည်းလမ်းဖြစ်သည်။ MySQLI extension ကို အသုံးပြု. MySQLI_STMT အရာဝတ်ထုများမှတဆင့်ကြိုတင်သတ်မှတ်ထားသည့်ထုတ်ပြန်ချက်များကိုသင်ကွပ်မျက်နိုင်သည်။ ကြိုတင်သတ်မှတ်ထားသည့်ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါ၎င်းသည်တစ်ခါတစ်ရံတွင်ကြေညာချက်ကိုအောင်မြင်စွာလုပ်ဆောင်ခြင်းရှိမရှိဆုံးဖြတ်ရန်လိုအပ်သည်။ MySQLI :: $ errno နှင့် MySQLI_STMT သည် ကွပ်မျက်မှုကျရှုံးမှုကိုတရားစီရင်ရန်ကျွန်ုပ်တို့အတွက်အစွမ်းထက်သောကိရိယာများဖြစ်သည်။

ဤဆောင်းပါးသည်ကြိုတင်ပြင်ဆင်ထားသည့်ကြေငြာချက်မအောင်မြင်ပါ။

1 ။ MySQLI :: ersqli နှင့် mysqli_stmt ကဘာလဲ။

  • MySQLI :: $ errno : ဤသည်မှာ MySQLI အတန်းအစား၏ပိုင်ဆိုင်မှုတစ်ခုဖြစ်ပြီးနောက်ဆုံး MySQL စစ်ဆင်ရေးတွင်ဖြစ်ပွားခဲ့သောအမှားကုဒ်ကိုပြန်လည်ရောက်ရှိစေသည်။ အမှားမရှိပါကတန်ဖိုးသည် 0 ဖြစ်လိမ့်မည်။

  • MySQLI_STMT : ဤသည်မှာ MySQLI extension မှ Preprocessing Statement ကိုကိုယ်စားပြုသည့် MySQLI extension မှပေးထားသောအတန်းဖြစ်သည်။ သင်သည်ဤလူတန်းစားမှတစ်ဆင့် SQL Query များကိုလုပ်ဆောင်နိုင်ပြီး parameters များကိုဖြတ်သွားနိုင်သည်။

ဤကိရိယာနှစ်ခုမှတဆင့် SQL query တစ်ခုကိုလုပ်ဆောင်ပြီးနောက်အမှားတစ်ခုဖြစ်ပွားခြင်းရှိ, နှင့်ဆက်စပ်သောခြွင်းချက်များကိုင်တွယ်ခြင်းရှိမရှိစစ်ဆေးနိုင်သည်။

2 ။ MySQLI :: errno :: အမှားတစ်ခုရှိမရှိဆုံးဖြတ်ရန် $ errno ကို သုံးပါ

ပထမ ဦး စွာ MySQLI :: errno ကို အသုံးပြုနည်းကိုကြည့်ကြပါစို့ဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်မှုရှိ, မရှိဆုံးဖြတ်ရန်။

 <?php
// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

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

// Preprocessing ထုတ်ပြန်ချက်များကိုရေးပါ
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

// Preprocessing ကြေညာချက်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($stmt === false) {
    die("Prepare failed: " . $mysqli->errno . " - " . $mysqli->error);
}

// parameters တွေကိုချည်ထား
$email = 'test@example.com';
$stmt->bind_param('s', $email);

// Execution ကြေငြာချက်
$stmt->execute();

// ကွပ်မျက်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($stmt->errno) {
    echo "Error occurred: " . $stmt->errno . " - " . $stmt->error;
} else {
    echo "Query executed successfully!";
}

// အနီးကပ်ထုတ်ပြန်ချက်များနှင့်ဆက်သွယ်မှု
$stmt->close();
$mysqli->close();
?>

3 ။ ကုဒ်ကိုရှင်းပြပါ

  • ကျွန်ုပ်တို့သည် MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်သည်။ ဆက်သွယ်မှုပျက်ကွက်ပါကအမှားကို $ MySQLI-> Connect_Error မှတစ်ဆင့်စစ်ဆေးပါ။

  • ထို့နောက်ကျွန်ုပ်တို့သည် SQL စုံစမ်းမှုကြေညာချက်ကိုပြင်ဆင်ပြီး ပြင်ဆင်ထား ခြင်းရှိမရှိစစ်ဆေးပါ။ အကယ်. ၎င်းသည်ပျက်ကွက်ပါကအမှားကုဒ်နှင့်အမှားအယွင်းများကိုထုတ်ယူရန် $ MySQLI-> ERRNO ကို သုံးသည်။

  • parameters တွေကို binding ပြီးနောက်ကျနော်တို့ကြေညာချက်ကို execution လုပ်ငန်းစဉ်အတွင်းအမှားအယွင်းများရှိ, ရှိမရှိဆုံးဖြတ်ရန် $ stmt-> errno ကို အသုံးပြုသည်။ Errno ၏တန်ဖိုး 0 ထက်ကြီးပါကကွပ်မျက်မှုမအောင်မြင်ဟုဆိုလိုသည်။ အမှားအယွင်းများကို $ stmt-> အမှားကို ဖြတ်. ရနိုင်သည်။

4 ။ MySQLI_STMM ကိုအသုံးပြုပြီးအမှားအယွင်း

$ MySQLI :: MySQLI_STMT ORTORE သည် MYSQLI_STMT OTH ORHEROLE PROWNO နှင့် အမှား attribute များကိုလည်း Preprocessing status ်ဌာန်းချက်များကိုအကဲဖြတ်ရန်ဖြစ်သည်။ Execute တွင်အမှားကုဒ်ကိုဖမ်းယူရန် MySQLI_STMT :: errno ကို သုံးနိုင်သည်။

 <?php
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

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

// ပြင်ဆင်မှုကြေညာချက်
$stmt = $mysqli->prepare("INSERT INTO users (name, email) VALUES (?, ?)");

// parameters တွေကိုချည်ထား
$name = 'John Doe';
$email = 'john@example.com';
$stmt->bind_param('ss', $name, $email);

// Execution ကြေငြာချက်
if (!$stmt->execute()) {
    echo "Execute failed: " . $stmt->errno . " - " . $stmt->error;
} else {
    echo "Insert successful!";
}

// အရင်းအမြစ်ကိုပိတ်ပါ
$stmt->close();
$mysqli->close();
?>

အထက်ပါဥပမာတွင် $ stmt-> execute () သည် boolean value ကိုပြန်ပို့သည်။ အကယ်. ကွပ်မျက်မှုမအောင်မြင်ပါကအမှားအယွင်းသည် ဒေါ်လာ stmt-> errno နှင့် $ stmt-> အမှားများ မှထွက်ပေါ်လာသည်။

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

  • MySQLI :: MySQLI :: errno နှင့် mySqli_stmt ကို သုံးပါ။

  • MySQLI_STMT :: MySQLI_STMT :: အမှားအယွင်းများကိုမှားယွင်းစွာ ရရှိသောအကြောင်းအရင်းကိုရှင်းရှင်းလင်းလင်းရရှိနိုင်ကြောင်းနှင့်သက်ဆိုင်ရာလုပ်ဆောင်မှုကိုပြုလုပ်နိုင်သည်။

  • ဤကိရိယာများသည်သင်၏ကုဒ်၏ကြံ့ခိုင်မှုနှင့်လုံခြုံမှုကိုပိုမိုကောင်းမွန်သော debug များပိုမိုကောင်းမွန်စွာကိုင်တွယ်ဖြေရှင်းရန်ကူညီနိုင်သည်။

ဤဆောင်းပါးသည်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI extension ကို အသုံးပြု. သင်အတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။