在uninstall.php
中,我具有这部分代码,当我删除其后的插件时,我发现在db中我具有所有的插件表:
<?php
function my_plugin_remove_database()
{
global $wpdb;
$quiz_categories_table = $wpdb->prefix . 'aysquiz_quizcategories';
$quizes_table = $wpdb->prefix . 'aysquiz_quizes';
$questions_table = $wpdb->prefix . 'aysquiz_questions';
$question_categories_table = $wpdb->prefix . 'aysquiz_categories';
$answers_table = $wpdb->prefix . 'aysquiz_answers';
$reports_table = $wpdb->prefix . 'aysquiz_reports';
$themes_table = $wpdb->prefix . 'aysquiz_themes';
$wpdb->query("DROP TABLE IF EXISTS `".$quiz_categories_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$quizes_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$questions_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$question_categories_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$answers_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$reports_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$themes_table."`");
}
register_uninstall_hook( __FILE__, 'my_plugin_remove_database' );
答案 0 :(得分:0)
用户以下命令用于强制删除表:
SET foreign_key_checks = 0;
drop table ...
SET foreign_key_checks = 1;
答案 1 :(得分:0)
首先必须删除父表,因为如果要先删除父表,则子表无法通过外键找到父表,这是更改后的代码
$wpdb->query("DROP TABLE IF EXISTS `".$answers_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$questions_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$quizes_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$reports_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$themes_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$quiz_categories_table."`");
$wpdb->query("DROP TABLE IF EXISTS `".$question_categories_table."`");