Това е източникът, който ми помогна да разбера това...https://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p6html
Вярвам, че това е просто нещо, което някои MySQL клиенти са внедрили, за да помогнат за доставката на куп sql оператори едновременно.
драйвер на mysqli не прилага тази функционалност.
Така че, това трябва да работи.
$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 example@sqldat.com_SQL_MODE;
SET example@sqldat.com_FOREIGN_KEY_CHECKS;
SET example@sqldat.com_UNIQUE_CHECKS;
QUERY;
$result = mysqli_multi_query($dbConnection, $query);
Попаднах на същия проблем, със същия драйвер на mysqli, с функция multi_query (използвайки разделители при създаване на процедури) и премахване на DELIMITER от моя SQL работи.