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

Sử dụng PHP để thực thi nhiều truy vấn MYSQL

Đừng chạy một loạt các truy vấn cùng một lúc. Thông thường, sự thành công của một hoạt động phụ thuộc vào tất cả các hoạt động khác đã được thực hiện chính xác, vì vậy bạn không thể chỉ vận hành máy ủi như thể không có gì sai khi có sự cố.

Bạn có thể làm như thế này:

$queries = [
  "CREATE TEMPORARY TABLE tmp SELECT * FROM event_categoriesBU WHERE id = 1",
  "UPDATE tmp SET id=100 WHERE id = 1",
  "INSERT INTO event_categoriesBU SELECT * FROM tmp WHERE id = 100"
];

foreach ($query as $query) {
  $stmt = $conn->prepare($query);
  $stmt->execute();
}

Đừng quên bật ngoại lệ để bất kỳ lỗi truy vấn nào sẽ dừng quá trình của bạn thay vì mọi thứ nằm ngoài tầm kiểm soát.

Lý do bạn không sử dụng multi_query là do hàm đó không hỗ trợ giá trị trình giữ chỗ. Nếu bạn cần giới thiệu một số loại dữ liệu người dùng trong truy vấn này, bạn cần sử dụng bind_param để làm điều đó một cách an toàn. Nếu không có các giá trị trình giữ chỗ, bạn sẽ gặp phải lỗi chèn SQL và chỉ một lỗi trong số đó cũng đủ khiến toàn bộ ứng dụng của bạn dễ bị tấn công.

Cần lưu ý rằng PDO linh hoạt và dễ thích ứng hơn rất nhiều so với mysqli vì vậy nếu bạn không đầu tư quá nhiều vào mysqli , bạn nên cân nhắc chuyển đổ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. Cách CHÈN nếu hàng không tồn tại (UPSERT) trong MySQL

  2. Ngăn chặn việc đưa vào SQL trong Node.js

  3. Ví dụ về DATE_FORMAT () - MySQL

  4. Các loại trong MySQL:BigInt (20) so với Int (20)

  5. Ví dụ EXTRACT () - MySQL