【发布时间】:2018-07-10 16:31:27
【问题描述】:
我正在尝试使用我正在构建的 wordpress 插件中的 dbDelta() 函数在 mySQL 数据库中的自定义表上创建触发器! 在插件激活时,会创建表并使用默认数据填充。执行此函数时:
function PDFsem_initial_trigger($ldd_tabela) {
global $wpdb;
$table_name = $wpdb->prefix.$ldd_tabela;
//it works!!!
$sql = "CREATE TRIGGER brisIspod BEFORE DELETE ON ".$table_name." FOR EACH ROW INSERT INTO wp_ldd_usluga (usluga_naziv,usluga_rbr,seminar_id) VALUES('NEW TRIGGERED DATA', 2, 2)";
/*
//dont work!!!
$sql = "CREATE TRIGGER brisIspod BEFORE DELETE ON wp_ldd_seminar FOR EACH ROW DELETE FROM wp_ldd_usluga WHERE wp_ldd_usluga.seminar_id = old.id_seminar;";
*/
dbDelta( $sql );
}
函数在 BEFORE DELETE ... INSERT INTO... 上创建触发器,但不会在 BEFORE DELETE ... DELETE... 上创建触发器。如果在 phpMysqlAdmin 控制台直接执行 sql 查询,则定期创建触发器。 我没有同时创建两个触发器,所以一个正在评论中。第一个触发器只是测试样本。 是否可以在 wordpress mySql db 中使用 dbDelta() 添加我想要的触发器?
【问题讨论】:
标签: php mysql wordpress triggers