如何在自定义WP插件安装中创建MySQL触发器

时间:2014-05-19 12:51:24

标签: php mysql wordpress

我正在编写一个自定义WP插件。 安装插件时,会在WP数据库中创建自定义表。 我想要的是一些WP方法来为我的表创建一个触发器。 wpdb->query()似乎无法创建触发器。 我的代码是:

global $wpdb;
$sql = "
        DROP TRIGGER IF EXISTS `delete_distributer_related_data`;
                DElIMITER //
        CREATE TRIGGER `delete_distributer_related_data` AFTER DELETE ON   `naqdina_distributers`
        FOR EACH ROW delete from naqdina_addresses where address_reference_type ='distributer' and
        id = OLD.id //
                DElIMITER";

$wpdb->query($sql);

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您的触发器语法错误。最好的方法是直接在mysql上编写触发器,但是如果你需要通过PHP端执行它,那么你可以检查这个线程Create mysql trigger via PHP?

现在从mysql终端或PHPMyadmin回到触发器部分,触发器应该看起来像

DROP TRIGGER IF EXISTS delete_distributer_related_data;
delimiter //
create trigger delete_distributer_related_data
after insert on naqdina_distributers
for each row
begin
   delete from naqdina_addresses 
   where address_reference_type ='distributer' and id = OLD.id ;
END; // 
delimiter ;

请注意,当您使用mysql_或mysqli_函数从PHP端执行触发器时,您不需要分隔符部分。