2

PHP 内でデータベース作成スクリプトを実行する必要があります。multi_query を使用すると、トリガー区切り文字に問題が発生します。

$sql="
CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT);
DELIMITER ;;
CREATE TRIGGER `tr_insert_test` AFTER INSERT ON `test` FOR EACH ROW BEGIN UPDATE log SET dirty = 1 WHERE data = DATE(NEW.emissione); END;;
DELIMITER ;";
$mysqli->multi_query($sql);

これにより、次のようになり ます。SQL 構文にエラーがあります。'DELIMITER ;;' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。CREATE TRIGGER tr_insert_testAFTER INSERT ON `test' at line 1

phpmyadmin内で同じスクリプトを試してみるとうまくいきます...理由を教えてください。ありがとう

4

1 に答える 1