我正在创建一个插件,我想在表上自动创建一个MySQL触发器。问题似乎是$wpdb->query似乎不接受多部分语句和/或格式化查询。
如果我在phpMyAdmin中打印并运行以下查询,它将返回success。我还注意到,如果我将查询全部格式化为一行,它仍然会报告成功,但在这种情况下,不会创建触发器。
$wpdb->query(
"DELIMITER //
DROP TRIGGER IF EXISTS {$wpdb->get_blog_prefix($site->id)}post_queue_insert//
CREATE TRIGGER {$wpdb->get_blog_prefix($site->id)}queue_insert BEFORE INSERT ON {$wpdb->get_blog_prefix($site->id)}posts
FOR EACH ROW BEGIN
INSERT INTO {$wpdb->base_prefix}post_queue (action_id, action_type, action_status, action_timestamp, sync_complete, SITE_ID) VALUES (NEW.ID, NEW.post_type, NEW.post_status, UNIX_TIMESTAMP(now()), 0, {$site->id});
END//
DELIMITER ;"
);
我是否可以使用其他函数或其他方式格式化查询以成功运行?