Ở chương trước chúng ta đã tìm hiểu cách kết nối cơ sở dữ liệu MySQL, cách tạo cơ sở dữ liệu và tạo bảng sử dụng MySQLi và PDO trong PHP. Nếu bạn bỏ lỡ bài viết này thì có thể xem tại đây:
Ở hướng dẫn này chúng ta sẽ tìm hiểu cách thêm dữ liệu vào MySQL bằng MySQLi và PDO trong PHP.
Thêm dữ liệu vào MySQL bằng MySQLi và PDO
Sau khi tạo cơ sở dữ liệu và các bảng, chúng ta có thể bắt đầu thêm dữ liệu vào chúng.
Dưới đây là một số quy tắc cú pháp để làm theo:
Truy vấn SQL phải được đặt trong cặp dấu nháy kép trong PHP.
Các giá trị chuỗi bên trong truy vấn SQL phải được đặt trong cặp dấu nháy đơn.
Các giá trị số không được đặt trong cặp dấu nháy đơn.
Giá trị NULL không được đặt trong cặp dấu nháy đơn.
Câu lệnh INSERT INTO được sử dụng để thêm các bản ghi mới vào bảng MySQL:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Để tìm hiểu thêm về MySQL, vui lòng truy cập hướng dẫn MySQL.
Trong chương trước, chúng tôi đã tạo một bảng trống có tên “MyGuests” với năm cột: “id”, “firstname”, “lastname”, “email” and “reg_date”. Bây giờ, chúng ta hãy thêm dữ liệu vào bảng này.
Lưu ý: Nếu một cột là AUTO_INCREMENT (như cột “id”) hoặc TIMESTAMP với cập nhật mặc định của current_timesamp (như cột “reg_date”) thì không cần phải chỉ định trong câu lệnh INSERT vì MySQL sẽ tự động thêm giá trị.
Các ví dụ sau đây thêm bản ghi mới vào bảng “MyGuests”:
Nhận ID của Bản ghi được chèn cuối cùng
Nếu chúng tôi thực hiện INSERT hoặc UPDATE trên một bảng với trường AUTO_INCREMENT, chúng tôi có thể nhận được ID của bản ghi được thêm / cập nhật gần đây ngay lập tức.
Trong bảng “MyGuests”, cột “id” là trường AUTO_INCREMENT:
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
Các ví dụ sau đây giống như các ví dụ ở phần trước ngoại trừ việc chúng tôi đã thêm mã để truy xuất ID của bản ghi được chèn cuối cùng và in ra ID được thêm cuối cùng:
Chèn nhiều bản ghi vào MySQL bằng MySQLi và PDO
Sẽ có lúc bạn sẽ phải thực thi nhiều câu lệnh SQL, tuy nhiên nếu bạn thực thi lần lượt từng câu lệnh sẽ làm giảm hiệu năng của hệ thống.
Có một cách để giải quyết trường hợp này đó là thực thi nhiều câu lệnh SQL trong một lần gọi cơ sở dữ liệu.
Các ví dụ sau đây sẽ thêm ba bản ghi mới vào bảng “MyGuests”:
Lưu ý: mỗi câu lệnh SQL phải được phân tách bằng dấu chấm phẩy.
Cách PDO hơi khác một chút, nó sử dụng transaction để commit các câu lệnh INSERT: