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

PHP đã chuẩn bị các câu lệnh và giao dịch trong một vòng lặp

Vòng lặp của bạn có thể được tối ưu hóa bằng cách kéo preparebind_param ra khỏi vòng lặp.

$value = null;
$mysqli->autocommit(FALSE);
$sql  = "INSERT INTO temp (`fund_id`) VALUES (?)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('i', $value);
foreach ($pdata as $value) {
    $stmt->execute();
}
$mysqli->commit();

Bạn đã tắt tính năng tự động gửi với autocommit(FALSE) của mình và do đó không cần sử dụng START TRANSACTION tuyên bố.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL TẠO BẢNG NẾU KHÔNG TỒN TẠI -> Lỗi 1050

  2. PHP - Truy vấn MySQL với Pagination

  3. chèn dữ liệu từ bảng này sang bảng khác trong mysql

  4. Sử dụng bí danh cột trong mệnh đề WHERE của truy vấn MySQL tạo ra lỗi

  5. Tạo cơ sở dữ liệu mới với MySQL Workbench