Có thể bạn không cần thay đổi dấu phân cách.
Dấu phân tách cần thiết trong CLI để cho biết vị trí kết thúc câu lệnh SQL, vì CLI sẽ tiếp tục đọc và thực thi các câu lệnh khác cho đến khi bạn yêu cầu nó dừng lại (ví dụ:với exit
hoặc Control-D). Nhưng những gì nó thực sự đọc chỉ là một dòng ký tự; bằng cách nào đó nó cần phải tìm ra nơi một câu lệnh kết thúc và câu lệnh tiếp theo bắt đầu. Đó là những gì dấu phân cách làm.
Trong PHP, mỗi lệnh gọi hàm thực thi một câu lệnh. Không thể có nhiều câu lệnh trong một lệnh gọi hàm, vì vậy không cần có cách để phân tách chúng. Câu lệnh là toàn bộ chuỗi. Điều này đúng với mysql_query
cũ cũng như mysqli_query
mới hơn và PDO. Tất nhiên, có mysqli_multi_query
nếu bạn thực sự muốn chuyển nhiều truy vấn cho một hàm.
Trong trường hợp của một thủ tục được lưu trữ / trigger / function / etc., Có thể có nhiều câu lệnh, nhưng điều đó được xử lý bởi chính MySQL (và luôn là ;
, AFAIK). Đối với PHP, đó vẫn là một tuyên bố.
Cài đặt dấu phân cách mà bạn thấy trong phpMyAdmin có thể đang được sử dụng để tách các câu lệnh ra và có thể đang được thực hiện trong mã PHP. Nó phải làm điều này vì nó đang chấp nhận đầu vào của người dùng bao gồm nhiều câu lệnh, nhưng chỉ phải chuyển một câu lệnh cho mỗi lần gọi hàm. (Tôi chưa kiểm tra mã phpMyAdmin để hoàn toàn chắc chắn về điều này).