Това е източникът, който ми помогна да разбера това...http://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 [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
QUERY;
$result = mysqli_multi_query($dbConnection, $query);
Попаднах на същия проблем, със същия драйвер на mysqli, с функция multi_query (използвайки разделители при създаване на процедури) и премахване на DELIMITER от моя SQL работи.