DANH MỤC: PHP&MYSQL

Bài 4: Insert multi data vào MySql bằng PHP


-Ở bài 2 mình đã giới thiệu với mọi người cách thêm dữ liệu vào trong MySql bằng PHP, ở bài này mình sẽ giới thiệu với mọi người cách thêm nhiều data vào trong MySql bằng PHP.

Nhiều data ở đây là thực hiện nhiều lệnh MySql như:

INSERT INTO tbl_news (title, content) VALUES ('tieu de', 'noi dung');
INSERT INTO tbl_news (title, content) VALUES ('tieu de', 'noi dung');

chứ không phải dạng như:

INSERT INTO tbl_news (title, content) 
VALUES ('tieu de', 'noi dung'), ('tieu de2', 'noi dung2');

1, Thêm nhiều record vào MySql bằng mysqli.

mysqli hướng thủ tục

-Với cách này các bạn dùng hàm mysqli_multi_query() để thực hiện insert multi record.

VD:

// khởi tạo kết nối
$connect = mysqli_connect('localhost', 'root', '', 'db_tuts');
//Kiểm tra kết nối
if (!$connect) {
    die('kết nối không thành công ' . mysqli_connect_error());
}
//câu truy vấn
$sql = "INSERT INTO tbl_news (title, content) VALUES ('tieu de1', 'noi dung1');
        INSERT INTO tbl_news (title, content) VALUES ('tieu de2', 'noi dung2');";
//kiểm tra
if (mysqli_multi_query($connect, $sql))
    //Thông báo nếu thành công
    echo 'Thêm thành công.';
else
    //Hiện thông báo khi không thành công
    echo 'Không thành công. Lỗi' . mysqli_error($connect);
//ngắt kết nối
mysqli_close($connect);

mysqli hướng đối tượng

-Với cách này các bạn sử dụng phương thức multi_query() để thực hiện insert multi record.

VD:

// khởi tạo kết nối
$connect = new mysqli('localhost', 'root', '', 'db_tuts');
//Kiểm tra kết nối
if ($connect->connect_error) {
    die('kết nối không thành công ' . $connect->connect_error);
}
//câu truy vấn
$sql = "INSERT INTO tbl_news (title, content) VALUES ('tieu de1', 'noi dung1');
        INSERT INTO tbl_news (title, content) VALUES ('tieu de2', 'noi dung2');";
//kiểm tra
if ($connect->multi_query($sql) === TRUE)
    //Thông báo nếu thành công
    echo 'Thêm thành công.';
else
    //Hiện thông báo khi không thành công
    echo 'Không thành công. Lỗi' . $connect->error;
//ngắt kết nối
$connect->close();

2, Thêm nhiều record vào MySql bằng PDO.

-Cách này khác với hai cách ở trên, ở hai cách trên khi bạn thực hiện thêm dữ liệu nếu như một trong hai câu truy vấn lỗi thì nó vẫn thực câu truy vấn còn lại. Còn với PDO thì nó sẽ kiểm tra hai câu truy vấn nếu như 1 trong hai câu truy vấn bị sai thì toàn bộ quá trình sẽ dừng lại.

-Để sử dụng multi insert trong PDO thì các bạn sẽ làm như VD sau:

VD:

try {
    // khởi tạo kết nối
    $connect = new PDO('mysql:host=localhost;dbname=db_tuts', 'root', '');
    $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //Câu truy vấn
    $sql = "INSERT INTO tbl_news (title, content) VALUES ('tieu de1', 'noi dung1')";
    //thực hiện truy vấn
    $connect->exec($sql);
    // set câu truy vấn tiếp
    $sql2 = "INSERT INTO tbl_news (title, content) VALUES ('tieu de2', 'noi dung2');";
    //thực thi câu truy vấn 2
    $connect->exec($sql2);
    //nếu không có lỗi gì thì run query
    $connect->commit();

    echo 'Thành công. ID=' . $connect->lastInsertId();
} catch (PDOException $e) {
    //thất bại thì rollback lại thao tác và in ra thông báo lỗi.
    $connect->rollback();

    die($e->getMessage());
}
//Ngắt kết nối
$connect = null;

3, Lời kết.

-Như vậy mình đã giới thiệu với mọi người cách thêm multi record vào MySql trong PHP rồi. Phần tiếp theo chúng ta sẽ tìm hiểu về select dữ liệu MySql bằng PHP.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia