Đây là nguồn đã giúp tôi hiểu điều này ... http://zend-framework-community.634137.n4.nabble.com/Problems-changed-the-sql-end-of-statement-delimiter-tp2124060p2124276.html
Tôi tin rằng nó chỉ là thứ mà một số máy khách MySQL đã triển khai để giúp vận chuyển một loạt các câu lệnh sql cùng một lúc.
trình điều khiển mysqli không triển khai chức năng này.
Vì vậy, điều này sẽ hoạt động.
$query = <<<QUERY
DROP VIEW IF EXISTS `myview` ;
SHOW WARNINGS;
DROP TABLE IF EXISTS `myview`;
SHOW WARNINGS;
CREATE OR REPLACE VIEW `myview` AS
...view definition...
;
SHOW WARNINGS;
SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
QUERY;
$result = mysqli_multi_query($dbConnection, $query);
Tôi đã gặp phải vấn đề tương tự, với cùng một trình điều khiển mysqli, với chức năng multi_query (sử dụng dấu phân cách trong khi tạo thủ tục) và xóa DELIMITER từ SQL của tôi đã hoạt động.