Trong bài này, chúng ta sẽ tìm hiểu về cách insert dữ liệu vào table trong MySQL với PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
Sau khi database và table được tạo, chúng ta có thể thêm (insert) dữ liệu vào table trong MySQL. Câu lệnh "INSERT INTO"
trong SQL được sử dụng để thêm dữ liệu vào table. Một số lưu ý khi viết câu lệnh insert:
– Câu lệnh SQL phải được đặt trong dấu nháy kép “” hoặc nháy đơn ” trong PHP
– Giá trị chuỗi (string) trong câu lệnh SQL nháy kép “” hoặc nháy đơn “
– Giá trị số (numeric) không cần đặt trong dấu nháy
– Giá trị NULL không cần đặt trong dấu nháy
Các ví dụ insert dữ liệu sẽ thực hiện trên table gochocit_posts trong database gochocit. Database và table này đã được tạo trong bài Tạo database và tạo table trong MySQL với PHP. Các bạn cần đọc lại để xem cấu trúc của database và table trên.
1. Thêm (insert) dữ liệu sử dụng MySQLi (object-oriented)
Câu lệnh INSERT INTO
được thực thi khi đối tượng mysqli là $conn gọi hàm query()
. Nếu câu lệnh SQL thực thi thành công và insert được dữ liệu thì hàm query()
sẽ trả về TRUE, ngược lại FALSE.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to insert data
$sql = "INSERT INTO gochocit_posts (post_author, post_title, post_content, post_date)
VALUES ('Vinh Lê', 'Đây là bài số 1', 'Chào tất cả các bạn!', now())";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
2. Thêm (insert) dữ liệu sử dụng MySQLi (procedural)
Câu lệnh INSERT INTO
được thực thi khi gọi hàm mysqli_query()
. Nếu câu lệnh SQL thực thi thành công và insert được dữ liệu thì hàm mysqli_query()
sẽ trả về TRUE, ngược lại FALSE.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";
// create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// check connection
if (!$conn) {
die("Connection failed: " . $conn->connect_error);
}
// sql to insert data
$sql = "INSERT INTO gochocit_posts (post_author, post_title, post_content, post_date)
VALUES ('Vinh Lê', 'Đây là bài số 1', 'Chào tất cả các bạn!', now())";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
3. Thêm (insert) dữ liệu sử dụng PDO (PHP Data Objects)
Câu lệnh INSERT INTO
được thực thi khi đối tượng PDO là $conn gọi hàm exec()
. Nếu câu lệnh SQL thực thi thành công và insert được dữ liệu thì hàm exec()
không gây ra exception. Ngược lại, hàm exec()
sẽ gây ra exception.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "gochocit";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO gochocit_posts (post_author, post_title, post_content, post_date)
VALUES ('Vinh Lê', 'Đây là bài số 1', 'Chào tất cả các bạn!', now())";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Ở bài này, chúng ta tìm hiểu cách insert một dòng dữ liệu vào table. Ở bài sau, chúng ta sẽ tìm hiểu cách insert nhiều dòng dữ liệu (multiple records) vào table.