Dies ist die Quelle, die mir geholfen hat, dies zu verstehen ... end-of-statement-delimiter-tp2124060p2124276.html">http://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p2124276.html
Ich glaube, es ist nur etwas, das einige MySQL-Clients implementiert haben, um dabei zu helfen, eine Reihe von SQL-Anweisungen gleichzeitig zu versenden.
mysqli-Treiber implementiert diese Funktionalität nicht.
Das sollte also funktionieren.
$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);
Ich bin auf dasselbe Problem gestoßen, mit demselben mysqli-Treiber, mit der multi_query-Funktion (unter Verwendung von Trennzeichen beim Erstellen von Prozeduren) und dem Entfernen des DELIMITER aus meinem SQL hat funktioniert.