NTM Solutions

Facebook Youtube Google+

Thứ Ba, 23 tháng 10, 2018

MYSQL - Bài 06 – Chèn nhiều bản ghi


XEM MỤC LỤC CÁC BÀI VIẾT PHP


Chèn nhiều bản ghi vào MySQL dùng MySQLi và PDO


Thực hiện nhiều câu truy vấn SQL ta nên dùng hàm mysqli_multi_query()

Các ví dụ sau thêm mới 03 bản ghi vào bảng "MyGuests"

Ví dụ (MySQLi hướng đối tượng)


<?php
$servername = "localhost";
$username = 
"root";
$password = 
"";
$dbname = 
"myDB";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối
if ($conn->connect_error) {
   
die("Lỗi kết nối: " . $conn->connect_error);
}

$sql = 
"INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('Nguyễn', 'Tèo', 'ntm@lophocvitinh.com');"
;
$sql .= 
"INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('Trần', 'Tủn', 'b@example.com');"
;
$sql .= 
"INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('Lý', 'Tồ', 'c@example.com')"
;

if ($conn->multi_query($sql) === TRUE) {
    
echo "Tạo các bản ghi mới thành công!";
else {
    
echo "Lỗi: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>




Chú ý rằng mỗi câu truy vấn SQL phân cách nhau bằng dấu ;

Ví dụ (MySQLi thủ tục)


<?php
$servername = "localhost";
$username = 
"root";
$password = 
"";
$dbname = 
"myDB";

// Tạo kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
 
// Kiểm tra kết nối
if (!$conn) {
   
die("Kết nối thất bại: " . mysqli_connect_error());
}

$sql = 
"INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('Nguyễn', 'Tèo', 'ntm@lophocvitinh.com');"
;
$sql .= 
"INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('Trần', 'Tủn', 'a@example.com');"
;
$sql .= 
"INSERT INTO MyGuests (firstname, lastname, email)
        VALUES ('Lý', 'Tồ', 'b@example.com')"
;

if (mysqli_multi_query($conn, $sql)) {
    
echo "Tạo các bản ghi mới thành công!";
else {
    
echo "Lỗi: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>



Sử dụng PDO có chút khác biệt:

Ví dụ (PDO)


<?php
$servername = "localhost";
$username = 
"root";
$password = 
"";
$dbname = 
"myDBPDO";

try {
    $conn = 
new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    
// thiết lập PDO chế độ bắt lỗi bằng ngoại lệ
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    
// bắt đầu tiến trình
    $conn->beginTransaction();
    
// các câu truy vấn SQL
    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('Nguyễn', 'Tèo', 'ntm@lophocvitinh.com')"
);
    $conn->exec(
"INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('Trần', 'Tủn', 'a@example.com')"
);
    $conn->exec(
"INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('Lý', 'Tồ', 'b@example.com')"
);

    
// xác nhận hoàn tất tiến trình
    $conn->commit();
    
echo "Thêm vào các bản ghi thành công!";
    }
catch(PDOException $e)
    {
    
// lùi lại tiến trình nếu có lỗi
    $conn->rollback();
    
echo "Lỗi: " . $e->getMessage();
    }

$conn = null;
?>

Ghi chú: các bạn nên chèn thêm đoạn mã xử lý unicode như trong các bài trước để hiển thị Tiếng Việt chính xác.

Nếu vẫn chưa rõ các bạn xem them video clip sau:



By #tiensim
Nguồn: sưu tầm