sql >> Databasteknik >  >> RDS >> Mysql

Hur får man mysqli att arbeta med DELIMITER i SQL-satser?

Det här är källan som hjälpte mig att förstå detta...http://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p2124

Jag tror att det bara är något som vissa MySQL-klienter har implementerat för att hjälpa till att skicka ett gäng sql-satser samtidigt.

mysqli-drivrutin implementerar inte den här funktionen.

Så det här borde fungera.

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

Jag stötte på samma problem, med samma mysqli-drivrutin, med multi_query-funktionen (använder avgränsare när jag skapade procedurer) och tog bort DELIMITER från min SQL fungerade.




  1. Hur man subtraherar timmar från ett Datetime-värde i MariaDB

  2. ansluter MySQL-servern till NetBeans

  3. Vad är databasanvändarrättigheter?

  4. PostgreSQL Planet i Ansible Galaxy