不使用wordpress中的dbDelta()创建触发器

时间:2018-01-31 14:15:55

标签: php mysql wordpress triggers

我正在尝试使用wordpress插件中的dbDelta()函数在mySQL数据库中的自定义表上创建TRIGGER我正在构建! 在插件激活时,将创建表并使用默认数据填充表。执行此功能时:

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()触发器?

1 个答案:

答案 0 :(得分:0)

可以使用以下命令创建mySql中的触发器:

$ 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;&#34 ;;

<强> $ wpdb-&GT;查询($ SQL);