| | 2364 | * Drops a table in the database if it does exist. |
| | 2365 | * |
| | 2366 | * This method checks for an existing table and drops it if it exist. |
| | 2367 | * It doesn't rely on MySQL's "IF NOT EXISTS" statement, but chooses |
| | 2368 | * to query all tables first and then run the SQL statement deleting the table. |
| | 2369 | * |
| | 2370 | * @since 5.5.0 |
| | 2371 | * |
| | 2372 | * @global wpdb $wpdb WordPress database abstraction object. |
| | 2373 | * |
| | 2374 | * @param string $table_name Database table name to drop. |
| | 2375 | * @return bool If table already doesn't exist or was droped by function. |
| | 2376 | */ |
| | 2377 | function maybe_drop_table( $table_name ) { |
| | 2378 | global $wpdb; |
| | 2379 | |
| | 2380 | $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) ); |
| | 2381 | |
| | 2382 | if !( $wpdb->get_var( $query ) == $table_name ) { |
| | 2383 | return true; |
| | 2384 | } |
| | 2385 | |
| | 2386 | // Did find it, so try to drop it. |
| | 2387 | $wpdb->query( 'DROP TABLE ' . $table_name ); |
| | 2388 | |
| | 2389 | // We cannot directly tell that whether this succeeded! |
| | 2390 | if !( $wpdb->get_var( $query ) == $table_name ) { |
| | 2391 | return true; |
| | 2392 | } |
| | 2393 | return false; |
| | 2394 | } |
| | 2395 | |
| | 2396 | /** |