php - 当此触发器查询直接在 mysql 中运行良好时,MySQL TRIGGER 无法与 $wpdb->query 一起使用
问题描述
这是我的触发器查询,当它直接在 mysql 数据库中触发时,它工作正常,但是当我在 wordpress 中使用这个查询时,它就不起作用了。 所以你能给我一些解决方案,我如何用 wordpress 运行这个查询?
drop trigger if exists table_1;
DELIMITER $$
CREATE TRIGGER table_1
AFTER
INSERT ON table_2
FOR EACH ROW
begin
INSERT INTO table_3 ( place_id, store_name, store_address) VALUES (new.place_id, new.store_name, new.vicinity);
end $$
DELIMITER ;
先感谢您。
解决方案
如果您想通过 wordpress 创建触发器,则不能使用 $wpdb->query() 方法,因为它不支持触发器创建查询。事实上,Wordpress wpdb API 根本不支持这一点。
您必须公开底层 mysqli API 并通过执行以下操作使用 mysqli_multi_query:
mysqli_multi_query($wpdb->dbh, $your_trigger_query)
mysqli_multi_query 函数使用 mysqli 连接并支持创建触发器。
推荐阅读
- java - 播放应用程序 | 如何将 FilePart 传递给其他请求
- django - this.$apollo 始终未定义
- visual-studio-2019 - Visual Studio 2019 IntelliTest 与 .NET Core、.NET Standard 的兼容性?
- python - 如果满足条件,如何交换 Nx2 numpy 数组的行的元素?
- javascript - const [a, b, c] = array 有什么区别?和 const {a, b, c} = 数组;
- security - Microsoft Identity Platform (/common/oauth2/v2.0/token) 上格式无效的 oAuth2.0 access_token
- mingw - MinGW 无法为导出的函数添加前缀 _impl_
- oracle-apex - 刷新后禁用页面项目不起作用
- python - Django 静态文件在根目录中时不加载
- java - Spring JPA 通过从 POST 请求正文中获取的列和值查询数据库