Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn hàng loạt MySQL qua PHP

Nếu bạn sử dụng một câu lệnh đã soạn sẵn, bạn có thể lặp lại $JSON_data của mình mảng với vòng lặp foreach và chạy INSERT với phần dữ liệu đó.

Sử dụng các câu lệnh đã chuẩn bị sẵn sẽ giảm bớt chi phí xây dựng truy vấn, chỉ cần gửi dữ liệu mới đến cơ sở dữ liệu trên mỗi lần lặp lại của vòng lặp.

$query = mysqli_prepare("INSERT INTO `MyTable` (`col1`,`col2`,`col3`)
    VALUES(?,?,?)");

foreach($JSON_data as $key => $value) {
    $query->bind_param('sss',$value["prop1"],$value["prop2"],$value["prop3"];
    $query->execute();
}

Lưu ý rằng đối số đầu tiên cho bind_param() cho nó biết bạn sẽ ràng buộc bao nhiêu giá trị, cũng như loại cho mỗi giá trị.
s tương ứng với dữ liệu chuỗi, i tương ứng với dữ liệu số nguyên, d tương ứng với double (dấu phẩy động) và b tương ứng với dữ liệu nhị phân.

Một lời cảnh báo khác, KHÔNG ĐƯỢC trích dẫn bất kỳ dữ liệu chuỗi nào, dưới dạng s datatype cho mysql biết mong đợi một chuỗi. Nếu bạn trích dẫn ? trong câu lệnh đã chuẩn bị, nó sẽ cho bạn biết số lượng tham số bị sai. Nếu bạn trích dẫn các chuỗi, nó sẽ được trích dẫn trong mysql.

CHỈNH SỬA:

Nếu bạn muốn sử dụng cùng một mô hình (chèn nhiều hàng với một truy vấn), có nhiều cách để thực hiện. Một cách là tạo một lớp sẽ tổng hợp bind_param gọi và thực hiện một bind_param khi bạn thực thi truy vấn. Mã cho điều đó là đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. triển khai truy vấn LIKE trong PDO

  2. MySQL so khớp () với () - thứ tự theo mức độ liên quan và cột?

  3. Tìm kiếm PDO và MySQL Fulltext

  4. gcc sẽ không biên dịch và chạy thư viện MySQL C

  5. MySQL:Cắt ngắn Bảng so với Xóa khỏi Bảng