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:
- 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ối131072
với65536
để nhận được nhiều kết quả. - Điều này sẽ không hoạt động trên PHP <4.3.0
- Đ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.