Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment faire fonctionner mysqli avec les DELIMITER dans les instructions SQL ?

C'est la source qui m'a aidé à comprendre cela...http://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p2124276.html

Je crois que c'est juste quelque chose que certains clients MySQL ont implémenté pour aider à envoyer un tas d'instructions sql en même temps.

pilote mysqli n'implémente pas cette fonctionnalité.

Donc, cela devrait fonctionner.

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

J'ai rencontré le même problème, avec le même pilote mysqli, avec la fonction multi_query (en utilisant des délimiteurs lors de la création de procédures) et en supprimant le DELIMITER de mon SQL a fonctionné.