NTM Solutions

Bài đăng nổi bật

🐘 PHP Cơ Bản 8.2 — CẤP ĐỘ TRỨNG🥚

Tự học PHP từ ZERO đến làm web động #laptrinhphpcoban 📘 PHẦN 1 — NHẬP MÔN PHP Bài 00 — Giới thiệu khóa học & cài đặt môi trường PHP là ...

Thứ Ba, 23 tháng 6, 2026

📝Bài 23 — INSERT Dữ Liệu Vào MySQL➕

Sau khi đã kết nối thành công PHP với MySQL ở bài trước, bước tiếp theo là ghi dữ liệu vào database.

Trong thực tế, thao tác INSERT được dùng rất nhiều:

  • ➕ Thêm bài viết

  • 👤 Tạo tài khoản người dùng

  • 🛒 Lưu đơn hàng

  • 💬 Lưu bình luận

  • 📧 Đăng ký nhận tin


🎯 Cú pháp INSERT cơ bản

INSERT INTO ten_bang (cot1, cot2)
VALUES ('gia_tri_1', 'gia_tri_2');

Ví dụ:

INSERT INTO products (name, price)
VALUES ('Bàn phím cơ', 1200000);

🏗️ Tạo bảng mẫu

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    price INT
);

Bảng gồm:

CộtÝ nghĩa
idMã tự tăng
nameTên sản phẩm
priceGiá sản phẩm

🔌 Kết nối MySQL

<?php

$conn = mysqli_connect(
    "localhost",
    "root",
    "",
    "phpbasic"
);

if (!$conn) {
    die("Kết nối thất bại");
}

➕ INSERT dữ liệu đầu tiên

<?php

$sql = "
INSERT INTO products(name, price)
VALUES ('Chuột không dây', 350000)
";

$result = mysqli_query($conn, $sql);

if($result){
    echo "Thêm dữ liệu thành công";
}else{
    echo "Lỗi";
}

Kết quả:

Thêm dữ liệu thành công

🔍 Kiểm tra trong phpMyAdmin

Mở:

phpMyAdmin
→ Database phpbasic
→ products
→ Browse

Sẽ thấy:

idnameprice
1Chuột không dây350000

➕ Thêm nhiều bản ghi

<?php

$sql = "
INSERT INTO products(name, price)
VALUES
('Bàn phím cơ',1200000),
('Tai nghe',850000),
('Webcam',600000)
";

mysqli_query($conn, $sql);

Kết quả:

idname
1Chuột không dây
2Bàn phím cơ
3Tai nghe
4Webcam

📝 INSERT bằng Form HTML

Form nhập liệu

<form method="post">

    Tên sản phẩm:
    <input type="text" name="name">

    <br><br>

    Giá:
    <input type="number" name="price">

    <br><br>

    <button type="submit">
        Thêm
    </button>

</form>

Xử lý PHP

<?php

if($_SERVER["REQUEST_METHOD"]=="POST"){

    $name = $_POST["name"];
    $price = $_POST["price"];

    $sql = "
    INSERT INTO products(name, price)
    VALUES ('$name', '$price')
    ";

    mysqli_query($conn,$sql);

    echo "Đã lưu dữ liệu";
}

Khi submit form:

Bàn phím gaming
1500000

Dữ liệu sẽ được ghi xuống MySQL.


⚠️ Nguy cơ SQL Injection

Đoạn code sau KHÔNG an toàn:

$name = $_POST["name"];

$sql = "
INSERT INTO products(name)
VALUES ('$name')
";

Kẻ xấu có thể chèn mã SQL độc hại.

Ví dụ:

abc'); DROP TABLE products; --

Có thể gây lỗi hoặc phá dữ liệu.


🛡️ Giải pháp: Prepared Statement

Đây là cách hiện đại và an toàn.

<?php

$stmt = mysqli_prepare(
    $conn,
    "INSERT INTO products(name, price)
     VALUES (?, ?)"
);

$name = "Chuột Gaming";
$price = 450000;

mysqli_stmt_bind_param(
    $stmt,
    "si",
    $name,
    $price
);

mysqli_stmt_execute($stmt);

echo "Đã thêm dữ liệu";

Trong đó:

s = string
i = integer
d = double
b = blob

🔍 Lấy ID vừa được thêm

mysqli_query($conn,$sql);

echo mysqli_insert_id($conn);

Ví dụ:

ID mới tạo: 15

Rất hữu ích khi:

  • 📄 Tạo bài viết

  • 🛒 Tạo đơn hàng

  • 👤 Tạo tài khoản


🎯 Ví dụ hoàn chỉnh

<?php

$conn = mysqli_connect(
    "localhost",
    "root",
    "",
    "phpbasic"
);

if($_SERVER["REQUEST_METHOD"]=="POST"){

    $name = $_POST["name"];
    $price = $_POST["price"];

    $stmt = mysqli_prepare(
        $conn,
        "INSERT INTO products(name, price)
         VALUES (?, ?)"
    );

    mysqli_stmt_bind_param(
        $stmt,
        "si",
        $name,
        $price
    );

    mysqli_stmt_execute($stmt);

    echo "Lưu thành công";
}
?>

<form method="post">

    <input
        type="text"
        name="name"
        placeholder="Tên sản phẩm">

    <br><br>

    <input
        type="number"
        name="price"
        placeholder="Giá">

    <br><br>

    <button type="submit">
        Lưu
    </button>

</form>

📌 Ghi nhớ

✅ INSERT dùng để thêm dữ liệu vào bảng

✅ mysqli_query() có thể thực hiện câu lệnh INSERT

✅ Có thể lấy ID vừa tạo bằng:

mysqli_insert_id()

✅ Nên dùng Prepared Statement để chống SQL Injection

✅ Đây là nền tảng để xây dựng CRUD hoàn chỉnh


🚀 Bài tiếp theo

👉 Bài 24 — SELECT Dữ Liệu

Bạn sẽ học:

  • SELECT *

  • SELECT theo điều kiện

  • WHERE

  • ORDER BY

  • LIMIT

  • Hiển thị dữ liệu ra HTML

x0

quay về MỤC LỤC


Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS