sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo hacer que mysqli funcione con DELIMITADORES en declaraciones SQL?

Esta es la fuente que me ayudó a entender esto... end-of-statement-delimiter-tp2124060p2124276.html">http://zend-framework-community.634137.n4.nabble.com/Problems- Changing-the-sql-end-of-statement-delimiter-tp2124060p2124276.html

Creo que es algo que algunos clientes de MySQL han implementado para ayudar a enviar un montón de sentencias SQL al mismo tiempo.

controlador mysqli no implementa esta funcionalidad.

Entonces, esto debería funcionar.

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

Me encontré con el mismo problema, con el mismo controlador mysqli, con la función multi_query (usando delimitadores al crear procedimientos) y eliminando el DELIMITER de mi SQL funcionó.