Plugin uninstall: why run dbDelta after $wpdb->query($drop_sql)

i am reading professional wordpress. their code for uninstalling a plugin is

//build our query to delete our custom table
$sql = "DROP TABLE " . $table_name . ";";

//execute the query deleting the table
require_once(ABSPATH .’wp-admin/includes/upgrade.php’);

my question is why run dbDelta after $wpdb->query($sql);


Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

This is indeed bizarre. I think they first tried it with dbDelta, found it doesn’t work with DROP queries, and went with a straight $wpdb query instead. They then just forgot to take out the dbDelta stuff. It appears dbDelta collects creation queries in $cqueries and insert queries in $iqueries, but silently ignores the rest. What a lovely function…

To be sure, you could ask this question on the book forum, hopefully the authors hang around there. Don’t forget to mention you first asked it here, so we get some publicity!

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments