Mysql
 sql >> Database >  >> RDS >> Mysql

Come far funzionare mysqli con DELIMITER nelle istruzioni SQL?

Questa è la fonte che mi ha aiutato a capire questo...http://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p2124276.html

Credo che sia solo qualcosa che alcuni client MySQL hanno implementato per aiutare a spedire un sacco di istruzioni sql allo stesso tempo.

driver MySQL non implementa questa funzionalità.

Quindi dovrebbe funzionare.

$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);

Ho riscontrato lo stesso problema, con lo stesso driver mysqli, con la funzione multi_query (usando i delimitatori durante la creazione delle procedure) e rimuovendo il DELIMITER dal mio SQL ha funzionato.