လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stmtt_init ကို အသုံးပြု. ထုတ်ပြန်ချက်များကိုမည်သို့အကောင်အထည်ဖော်နိုင်မည်နည်း

stmtt_init ကို အသုံးပြု. ထုတ်ပြန်ချက်များကိုမည်သို့အကောင်အထည်ဖော်နိုင်မည်နည်း

M66 2025-05-29

PHP တွင် SQL ထုတ်ပြန်ချက်များကို MySQLI extension ကို အသုံးပြု. StMM_INIT သည် အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ Preprocessing ထုတ်ပြန်ချက်များသည် SQL Injection Attack မှကာကွယ်ရန်ဒေတာဗေ့လိုချင်သူများကို Placeversers ကိုအသုံးပြုခွင့်ပြုသည်။

တခါတရံတွင်ကျွန်ုပ်တို့သည်တူညီသော preprocessing ထုတ်ပြန်ကြေငြာချက်ကိုအကြိမ်ကြိမ်ပြုလုပ်ရန်လိုအပ်သည်။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည် stmt_init ကိုအကြိမ်ကြိမ်အကောင်အထည်ဖော်သည့်လုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်ရန်အတွက် STMT_INIT ကို သုံးနိုင်သည်။ SQL ထုတ်ပြန်ချက်များကို Execute လုပ်ရန် PHP တွင် StMT_INIT ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ဥပမာတစ်ခုဖြစ်သည်။

 <?php
// 1. ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test_database";

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

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

// 2. အသုံးပြုstmt_initPreprocessing ထုတ်ပြန်ချက်များကိုအစပြု
$stmt = $conn->stmt_init();

// ပြင်ဆင်မှုကြေညာချက်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($stmt->prepare("INSERT INTO users (username, email) VALUES (?, ?)")) {

    // 3. ဒေတာအစုတခုကို Simulate,ဤအချက်အလက်များကိုအကြိမ်ပေါင်းများစွာထည့်ပါလိမ့်မည်
    $users = [
        ['john_doe', 'john@m66.net'],
        ['jane_doe', 'jane@m66.net'],
        ['alice_smith', 'alice@m66.net'],
    ];

    // 4. Preprocessing ထုတ်ပြန်ချက်များ loop ကွပ်မျက်,အသုံးပြုသူအချက်အလက်များကိုတစ်ခုဖြင့်ထည့်ပါ
    foreach ($users as $user) {
        $username = $user[0];
        $email = $user[1];

        // ထုတ်ပြန်ချက်များကိုကြိုတင်သတ်မှတ်ထားရန် parameters တွေကိုချည်ထား
        $stmt->bind_param("ss", $username, $email);

        // Execution ကြေငြာချက်
        if ($stmt->execute()) {
            echo "အောင်မြင်စွာအသုံးပြုသူကိုအောင်မြင်စွာထည့်သွင်း: $username, $email\n";
        } else {
            echo "မအောင်မြင်ပါ: " . $stmt->error . "\n";
        }
    }

    // 5. ကြေငြာချက်
    $stmt->close();
} else {
    echo "ကြိုတင်ကြေငြာချက်ကြိုတင်ပြင်ဆင်မှုမအောင်မြင်ပါ: " . $conn->error;
}

// 6. ဒေတာဘေ့စ် connection ကိုပိတ်ပါ
$conn->close();
?>

Code ဖော်ပြချက်:

  1. ဒေတာဘေ့စ်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ပါ ။ ပထမအချက်မှာ MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်လိုအပ်သည်။ ဤဥပမာတွင် localhost ကို ဆာဗာအဖြစ်အသုံးပြုသည်။ Connection Parametersters ကိုအမှန်တကယ်အခြေအနေအရထိန်းညှိရန်လိုအပ်သည်။

  2. ကန ဦး ဖော်ပြချက် - ကွပ်မျက်ရန်အဆင်သင့်ဖြစ်ရန်အဆင်သင့်ဖြစ်ရန်အဆင်သင့်ဖြစ်ရန်အတွက် `` $ conn-> stmt_init () ကိုသုံးပါ။ ထို့နောက် ကြိုတင်ပြင်ဆင်မှု နည်းလမ်းမှတဆင့် preprocessed SQL ထုတ်ပြန်ချက်များကို set up ။ ဤဥပမာတွင်ကျွန်ုပ်တို့သည် သုံးစွဲသူများ စားပွဲ၌အသုံးပြုသူအမည်နှင့် အီးမေးလ်များ ကိုထည့်သွင်းထားသော username နှင့်အီးမေးလ်များကိုထည့်သွင်း ရန်ထည့်သွင်းရန် ပြင်ဆင်နေသည်။

  3. Bind Parametersters - PHP variable တွေကို bind_param method ကို proprocessing ထုတ်ပြန်ချက်များအတွက် plp variable တွေကို bind ။ "SS" parameter သည်ကျွန်ုပ်တို့သည် string type parameters နှစ်ခုကိုချည်နှောင်ထားသည်ဟုဆိုလိုသည်။

  4. Loop Execution : Forach ကွင်းဆက်တွင်ကျွန်ုပ်တို့သည်အသုံးပြုသူအချက်အလက်မျိုးစုံပါ 0 င်သောခင်းကျင်းမှုတွင်ကျွန်ုပ်တို့ဖြတ်သန်းသွားသည်။ ကွင်းဆက်တစ်ခုစီသည်ဒေတာအတန်းတစ်ခုထည့်ရန် execute နည်းလမ်းကို Execute နည်းလမ်းကိုလုပ်ဆောင်ပါ။

  5. Close ဟုပိတ်ပစ်ခြင်းနှင့်ဆက်သွယ်မှု - စစ်ဆင်ရေးပြီးစီးပြီးနောက် STMT နှင့် database connection ကို အနီးကပ် () နည်းလမ်းဖြင့်ပိတ်ထားသည်။

အားသာချက်:

  1. SQL Injection ကိုတားဆီးပါ ။ Proscessing ထုတ်ပြန်ချက်များနှင့် parameter များအနေဖြင့်ကျွန်ုပ်တို့အသုံးပြုသောကြောင့်ဤဖြစ်စဉ်သည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။

  2. မြင့်မားသောထိရောက်မှု - တူညီသောစုံစမ်းမှုကြေညာချက်အတွက်ကွဲပြားခြားနားသော parameters တွေကိုများအတွက် sql ထုတ်ပြန်ချက်များနှင့်တိုးတက်အောင်ထပ်ခါတလဲလဲဖန်တီးမှုကိုရှောင်ရှားရန်,

မှတ်စုများ

  1. သင်ကွင်းဆက်တစ်ခုစီတိုင်းလုပ်ဆောင်သည့်အခါတိုင်း bind_param နှင့် execute method များသည်ကွဲပြားခြားနားသော input data ကိုမှန်ကန်စွာလုပ်ဆောင်နိုင်အောင်သေချာအောင်လုပ်ပါ။

  2. အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်လိုအပ်ပါကဒေတာဘေ့စ်၏ဆက်သွယ်မှုဖွဲ့စည်းမှုကို connection configurations connection configurations connection configurations သည်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုကိုင်တွယ်ဖြေရှင်းနိုင်ရန်နှင့်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုရှောင်ရှားနိုင်ကြောင်းသေချာပါစေ။

ဤနည်းအားဖြင့် PHP တွင် stmtt_init ကိုသုံးပြီး SQL ထုတ်ပြန်ချက်များကိုထိရောက်စွာလုပ်ဆောင်နိုင်ပြီးကွဲပြားခြားနားသော parameters တွေကိုပြောင်းလဲနိုင်လိမ့်မည်။ PHP တွင်ကြိုတင်အသုံးချခြင်းထုတ်ပြန်ချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပိုမိုနားလည်ရန်မျှော်လင့်ပါသည်။