Ben PHP5.3 aşağıdaki yürütme ediyorum: PHP ile mysql tetikleyicisi oluşturulsun mu?
$sql = "
CREATE TRIGGER `_photo_fulltext_insert` AFTER INSERT ON `photo` FOR EACH ROW INSERT INTO `_photo_fulltext` SELECT * FROM `photo` WHERE `id`=NEW.`id`;
CREATE TRIGGER `_photo_fulltext_delete` AFTER DELETE ON `photo` FOR EACH ROW DELETE FROM `_photo_fulltext` WHERE `id`=OLD.`id`;
DELIMITER |
CREATE TRIGGER `_photo_fulltext_update` AFTER UPDATE ON `photo`
FOR EACH ROW BEGIN
DELETE FROM `_photo_fulltext` WHERE `id`=NEW.`id`;
INSERT INTO `_photo_fulltext` SELECT * FROM `photo` WHERE `id`=NEW.`id`;
END;
|
DELIMITER ;
";
$mysqli->multi_query($sql);
"photo_fulltext_update" tetik
oluşturulan almıyor. Bu ifade phpMyAdmin'de çalışır (ve tüm tetikleyicileri oluşturur). MySQL sunucusunun DELIMITER deyimini desteklemediği bir yerde çevrimiçi okudum, bu yüzden mysqli :: multi_query'nin MySQL'e gönderebilmesi için bu çok adımlı CREATE TRIGGER deyimini yeniden yazmanın bir yolunu arıyorum .Teşekkürler!
çözüm basitçe "DELIMITER" ifadeleri ve sondaki kaldırmaktır. Sanırım MySQL ve/veya mysqli tetikleyici bloğu onlar olmadan doğru şekilde ayrıştırır. – brianjcohen
Cevabınız için teşekkürler, Brian :-) Bir çekicilik gibi çalışır! –