3

私はmysqliを使用しており、SQLコードスニペット(MySQL Workbenchによって生成された)からデータベースにビューを取得しようとしています。

$query = <<<QUERY
DROP VIEW IF EXISTS `myview` ;
SHOW WARNINGS;
DROP TABLE IF EXISTS `myview`;
SHOW WARNINGS;
DELIMITER $$
CREATE OR REPLACE VIEW `myview` AS

...view definition...

$$
DELIMITER ;

;
SHOW WARNINGS;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
QUERY;

$result = mysqli_multi_query($dbConnection, $query);

これは機能しません。エラーはありません。ステートメントは無視されているようです。DELIMITER $$区切り文字の定義(行、、、$$および)を削除した場合にのみ機能しDELIMITER ;ます。

なぜ機能しないのですか?mysqli関数とメソッドに渡されるSQLステートメントで区切り文字を使用するにはどうすればよいですか?

どうも

4

1 に答える 1