Thêm (insert) dữ liệu trong MySQL với PHP

Đây là bài 48/53 bài của series môn học Lập trình Web PHP

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.

Bảng gochocit_posts được tạo ra

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$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$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.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Tạo database và tạo table trong MySQL với PHPThêm (insert) nhiều record dữ liệu trong MySQL với PHP >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.