WordPress-Plugin-Entwicklung – Kann die Datenbanktabelle nach der Deaktivierung des Plugins nicht gelöscht werden?

Lesezeit: 1 Minute

Benutzer-Avatar
Jimmy Jammed

Ich versuche, die Datenbanktabelle zu löschen, die erstellt wird, wenn mein benutzerdefiniertes Plugin aktiviert wird. Ich verwende im Grunde den gleichen Code, nur eine Drop-Abfrage. Der Tisch fällt jedoch nicht!

Folgendes habe ich bestätigt:

  • Der WP-Datenbankbenutzer hat Berechtigungen zum Löschen von Tabellen (ich habe dies bestätigt, indem ich eine SQL-Abfrage in der Workbench ausgeführt habe).
  • Die Abfrage wird aufgerufen und ist korrekt (ich habe ‘die($sql)’ verwendet, um die Abfrage auszugeben, und sie dann in Workbench ausgeführt.)

    function my_plugin_remove_database() {
         global $wpdb;
         $table_name = $wpdb->prefix . "my_plugin_table";
         $sql = "DROP TABLE IF EXISTS $table_name;";
         //die($sql);
         require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
         dbDelta( $sql );
         delete_option("my_plugin_db_version");
    }
    register_deactivation_hook( __FILE__, 'my_plugin_remove_database' );
    

Benutzer-Avatar
Faishal

Verwenden $wpdb->query() Anstatt von dbDelta()

function my_plugin_remove_database() {
     global $wpdb;
     $table_name = $wpdb->prefix . "my_plugin_table";
     $sql = "DROP TABLE IF EXISTS $table_name;";
     $wpdb->query($sql);
     delete_option("my_plugin_db_version");
}

register_deactivation_hook( __FILE__, 'my_plugin_remove_database' );

dbDelta() wird nicht unterstützt DROP-TABELLE Anfrage.

  • Groß! Hat perfekt funktioniert, war mir nicht bewusst, dass dbDelta Drop nicht unterstützt. Vielen Dank!

    – Jimmy Jammed

    3. Juni 2013 um 17:31 Uhr

1363150cookie-checkWordPress-Plugin-Entwicklung – Kann die Datenbanktabelle nach der Deaktivierung des Plugins nicht gelöscht werden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy