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

Hvordan får man mysqli til at arbejde med DELIMITER i SQL-sætninger?

Dette er kilden, der hjalp mig med at forstå dette...http://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p6124

Jeg tror, ​​det bare er noget, som nogle MySQL-klienter har implementeret for at hjælpe med at sende en masse sql-udsagn på samme tid.

mysqli-driver implementerer ikke denne funktionalitet.

Så det burde virke.

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

Jeg stødte på det samme problem, med den samme mysqli-driver, med multi_query-funktion (ved at bruge afgrænsere under oprettelse af procedurer) og fjerne DELIMITER fra min SQL virkede.




  1. Sådan aktiveres ENUM'er i Symfony 2 / Doctrine

  2. Returner stigningsværdien af ​​en identitetskolonne i SQL Server

  3. Returner kun én række fra tabellen længst til højre for hver række i tabellen længst til venstre

  4. Hvordan kan jeg kombinere flere rækker til en kommasepareret liste i Oracle?