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

Làm thế nào để chèn nhiều hàng từ mảng bằng cách sử dụng khuôn khổ CodeIgniter?

Lắp ráp một INSERT câu lệnh có nhiều hàng trong MySQL nhanh hơn nhiều so với một INSERT câu lệnh trên mỗi hàng.

Điều đó nói rằng, có vẻ như bạn có thể đang gặp phải các vấn đề về xử lý chuỗi trong PHP, đây thực sự là một vấn đề thuật toán, không phải là một vấn đề ngôn ngữ. Về cơ bản, khi làm việc với các chuỗi lớn, bạn muốn giảm thiểu việc sao chép không cần thiết. Về cơ bản, điều này có nghĩa là bạn muốn tránh ghép nối. Cách nhanh nhất và hiệu quả nhất về bộ nhớ để tạo một chuỗi lớn, chẳng hạn như để chèn hàng trăm hàng cùng một lúc, là tận dụng implode() hàm và gán mảng.

$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));

Ưu điểm của cách tiếp cận này là bạn không sao chép và sao chép lại câu lệnh SQL mà bạn đã lắp ráp cho đến nay với mỗi phép nối; thay vào đó, PHP thực hiện điều này một lần trong implode() tuyên bố. Đây là một lớn chiến thắng.

Nếu bạn có nhiều cột để ghép lại với nhau và một hoặc nhiều cột rất dài, bạn cũng có thể tạo một vòng lặp bên trong để làm điều tương tự và sử dụng implode() để gán mệnh đề giá trị cho mảng bên ngoài.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Viết hoa chữ cái đầu tiên của mỗi từ, trong bảng hiện có

  2. Cách giới hạn hàng trong tập kết quả MySQL

  3. Cách lấy số bit trong chuỗi trong MySQL - BIT_LENGTH ()

  4. Cách xuất kết quả của một truy vấn bằng MySQL Workbench

  5. MySQL InnoDB Cluster 8.0 - Quá trình triển khai hoàn chỉnh:Phần thứ nhất