gpt4 book ai didi

php - 不使用 WordPress 中的 dbDelta() 创建触发器

转载 作者:行者123 更新时间:2023-11-29 17:59:10 25 4
gpt4 key购买 nike

我正在尝试使用我正在构建的 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() 添加我想要的触发器?

最佳答案

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

$sql = "在删除 wp_ldd_seminar 上的每行之前创建触发器 brisIspod,从 wp_ldd_usluga 删除 wp_ldd_usluga,其中 wp_ldd_usluga.seminar_id = old.id_seminar;";

$wpdb->查询($sql);

关于php - 不使用 WordPress 中的 dbDelta() 创建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48544290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com