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

Làm thế nào để thực thi nhiều truy vấn mysql cùng nhau trong PHP?

mysql_query() gửi một truy vấn duy nhất (nhiều truy vấn không được hỗ trợ) Đó là hành vi mặc định, tuy nhiên vẫn có cách bỏ qua cho điều này.

Tuy nhiên, mã kết quả của chỉ truy vấn đầu tiên sẽ được cung cấp dưới dạng đầu ra của mysql_query() nếu bạn làm điều này.

Bạn chỉ cần chuyển cờ 65536 làm tham số thứ 5 của mysql_connect. cờ được xác định trong cờ Máy khách MySQL .

#define CLIENT_MULTI_STATEMENTS 65536 /* Enable/disable multi-stmt support */
#define CLIENT_MULTI_RESULTS 131072 /* Enable/disable multi-results */

Vì vậy, hãy chỉnh sửa mysql_connect() của bạn mã để khớp với mã này:

mysql_connect($host, $username, $password, false, 65536);

Cảnh báo:

  1. Bạn sẽ nhận được kết quả của mysql_query($query) cho truy vấn đầu tiên chỉ trong $query đã cho . Bạn có thể thử nối 131072 với 65536 để nhận được nhiều kết quả.
  2. Điều này sẽ không hoạt động trên PHP <4.3.0
  3. Điều này sẽ không hoạt động nếu sql.safe_mode được đặt là 1 trong php.ini

Một giải pháp thay thế khác sẽ là sử dụng mysqli thay vì mysql thư viện. Nó hỗ trợ $mysqli->multi_query() và cung cấp đầu ra trong một mảng cho mỗi truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không chuyển đổi được từ loại [java.lang.Object []] sang loại

  2. MYSQL chọn ngẫu nhiên từng danh mục

  3. Thay đổi giá trị thả xuống tiếp theo với sự kiện trao đổi thả xuống trước đó

  4. Độ chậm được tìm thấy khi hình ảnh cơ sở 64 chọn và mã hóa từ cơ sở dữ liệu

  5. Giá trị mặc định của MySQL làm giá trị của trường khác