လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MVC ဗိသုကာတွင် stmt_init ကိုမှန်ကန်စွာအသုံးပြုရန်နည်းလမ်းများ

MVC ဗိသုကာတွင် stmt_init ကိုမှန်ကန်စွာအသုံးပြုရန်နည်းလမ်းများ

M66 2025-06-02

PHP တွင် MySQLI :: stmt_init သည် MySQLI_STMT အရာဝတ်ထုအသစ်ကို အစပြု. အဓိကအသုံးပြုသော MySQLI extension တွင် function တစ်ခုဖြစ်သည်။ ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုကွပ်မျက်ရန်အလွန်အရေးကြီးသည်။ Preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းအားဖြင့် SQL Injection ကဲ့သို့သောလုံခြုံရေးဆိုင်ရာကိစ္စရပ်များကိုရှောင်ရှားနိုင်ပြီးဒေတာဘေ့စ်မေးမြန်းချက်များ၏ထိရောက်မှုကိုတိုးတက်စေသည်။

2 ။ MVC ဗိသုကာတွင်ဒေတာဘေ့စ်လုပ်ငန်းများ

MVC ဗိသုကာများတွင်ဒေတာဘေ့စ်လုပ်ငန်းများကိုပုံမှန်အားဖြင့်မော်ဒယ်အလွှာတွင်တည်ရှိသည်။ အချက်အလက်များကိုရယူခြင်းနှင့်သိုလှောင်မှုကိုရယူရန်အတွက်တာ 0 န်ရှိသည်။ ကျွန်ုပ်တို့၏ကိစ္စတွင် MySQLI :: :: Myanmar Layer တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် STMT_INIT ကို အသုံးပြုမည်။

3 ။ အကောင်အထည်ဖော်မှုအဆင့်များ

ကျွန်ုပ်တို့တွင်ရိုးရိုးရှင်းရှင်းအသုံးပြုသူစီမံခန့်ခွဲမှုစနစ်ရှိသည်ဆိုပါစို့။ အသုံးပြုသူအချက်အလက်များကိုဒေတာဘေ့စ်သို့ထည့်သွင်းလိုပါက ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်စားပွဲခုံဖွဲ့စည်းပုံမှာအောက်ပါအတိုင်းဖြစ်သည် -

 CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL
);

အသုံးပြုသူအချက်အလက်များကိုထည့်သွင်းစဉ်းစားရန် မော်ဒယ် အလွှာရှိနည်းလမ်းတစ်ခုကိုကျွန်ုပ်တို့ဖန်တီးပါမည်။

အဆင့် 1: ဒေတာဘေ့စ်ဆက်သွယ်မှုအတန်း (Database.php)

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

 class Database {
    private $host = 'localhost';
    private $username = 'root';
    private $password = '';
    private $database = 'test_db';
    public $conn;

    public function __construct() {
        $this->conn = new mysqli($this->host, $this->username, $this->password, $this->database);
        if ($this->conn->connect_error) {
            die("Connection failed: " . $this->conn->connect_error);
        }
    }
}
အဆင့် 2. Usermodel အတန်းအစား (Usermodel.php) ကိုဖန်တီးပါ။

ထို့နောက်အသုံးပြုသူနှင့်သက်ဆိုင်သောဒေတာဘေ့စ်လုပ်ငန်းများကိုကိုင်တွယ်သော Usermodel အတန်းကိုကျွန်ုပ်တို့ဖန်တီးသည်။ Preprocessing Stata ကိုစတင်ရန်နှင့်အသုံးပြုသူအချက်အလက်များကိုစတင်ရန် MySQLI :: stmt_init function ကိုသုံးပါမည်။

 class UserModel {
    private $db;

    public function __construct() {
        $this->db = new Database();
    }

    public function addUser($username, $email) {
        // Initialization ပြင်ဆင်မှုကြေညာချက်
        $stmt = $this->db->conn->stmt_init();

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

            // Execution ကြေငြာချက်
            if ($stmt->execute()) {
                echo "User added successfully!";
            } else {
                echo "Error: " . $stmt->error;
            }

            // ကြေငြာချက်
            $stmt->close();
        } else {
            echo "Prepare failed: " . $this->db->conn->error;
        }
    }
}
အဆင့် 3: Controller Layer Call (USERCORTROLLER.php)

Controller အလွှာတွင် USERMODED လူတန်းစားနည်းလမ်းကိုခေါ်ဆိုခြင်းဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သည်။ ကျွန်ုပ်တို့သည်အသုံးပြုသူမှထည့်သွင်းထားသောအချက်အလက်များကိုယူပြီး Adduser Method သို့ကူးသွားပါမည်။

 class UserController {
    private $model;

    public function __construct() {
        $this->model = new UserModel();
    }

    public function createUser($username, $email) {
        // တယ်လီဖုန်းဆက်ခြင်း UserModel Class ၏နည်းလမ်းများအသုံးပြုသူအချက်အလက်များကိုထည့်ပါ
        $this->model->addUser($username, $email);
    }
}
အဆင့် 4: Front-end စာမျက်နှာသည်အသုံးပြုသူများနှင့်အပြန်အလှန်ဆက်သွယ်သည်

နောက်ဆုံးအနေဖြင့်ရှေ့တွင်စာမျက်နှာတွင်အသုံးပြုသူများသည်ဒေတာများကို 0 င်ရန်ရိုးရှင်းသောပုံစံကိုပေးသည်။ ပုံစံဒေတာကိုဒေတာတွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် Controller Layer မှတစ်ဆင့်ပုံစံသို့တင်ပြလိမ့်မည်။

 <form method="POST" action="create_user.php">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username" required>
    
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>
    
    <button type="submit">Create User</button>
</form>

Create_user.php ဖိုင်တွင်အသုံးပြုသူကို Controller မှတဆင့်ဖန်တီးသည်။

 include 'UserController.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $email = $_POST['email'];

    $controller = new UserController();
    $controller->createUser($username, $email);
}

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

MVC ဗိသုကာတွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI :: stmt_init function ကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်ကုဒ်၏လုံခြုံရေးနှင့်ထိရောက်မှုကိုတိုးတက်စေသည်။ Preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းအားဖြင့် SQL Injection ၏အန္တရာယ်ကိုရှောင်ရှားပြီးကုဒ်သည်ရှင်းလင်းစွာထိန်းသိမ်းရန်ပိုမိုလွယ်ကူသည်။ ဤဥပမာတွင် Model အလွှာတွင်ဒေတာဘေ့စ်လုပ်ငန်းများကိုကျွန်ုပ်တို့ encapsulate leadser layer တစ်ခုချင်းစီ၏တာ 0 န် 0 တ္တရားများကိုခွဲခြားရန်အတွက်ရှေ့တန်းနှင့်အပြန်အလှန်ဆက်သွယ်ခြင်းအတွက်တာဝန်ရှိသည်။

ဤနည်းအားဖြင့်သင်သည်ဒေတာဘေ့စ်လုပ်ငန်းများကို MVC ဗိသုကာတွင်လျောက်ပတ်စွာကိုင်တွယ်နိုင်ပြီးအနာဂတ်တိုးချဲ့ရန်အတွက်ကောင်းမွန်သောအခြေခံအုတ်မြစ်တစ်ခုပေးနိုင်သည်။