Chỉ cần đảm bảo:khi bạn đang cố gắng thực thi 4 truy vấn này từ PHP, bạn đang gọi mysql_query
bốn lần?
Ví dụ:
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,1,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,2,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,3,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,4,1)");
Ý tôi là
:bạn không thể gửi nhiều truy vấn riêng biệt cùng một lúc, chỉ với một lệnh gọi tới mysql_query
(trích dẫn, nhấn mạnh của tôi) :
Bạn phải "tách biệt" các truy vấn của mình - đây có thể là điều mà phpMyAdmin thực hiện mà không cho bạn biết.
Và, như @Alexandre đã chỉ ra trong phần bình luận:
Nếu bạn đang sử dụng mysqli_*
các hàm (chứ không phải mysql_*
) để truy cập cơ sở dữ liệu của mình, bạn có thể thử sử dụng mysqli_multi_query
.
Thật không may, có chức năng như vậy cho mysql_*
.
(BTW:mysql_*
API là cái cũ - sẽ tốt hơn, đặc biệt là đối với một dự án mới, sử dụng mysqli_*
)
Chỉnh sửa sau nhận xét:
Nếu đó là về hiệu suất, có, thực hiện một lệnh gọi đến cơ sở dữ liệu, thay vì bốn PHP <-> MySQL
kế tiếp cuộc gọi, có thể tốt hơn.
Trong trường hợp này, bạn có thể thử sử dụng cú pháp chèn cho phép chèn nhiều dòng cùng một lúc; xem 12.2.5. CHÈN Cú pháp trong hướng dẫn sử dụng của MySQL (trích dẫn) :