WordPress Version: 5.4
/**
* Drop column from database table, if it exists.
*
* @since 1.0.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param string $table_name Table name
* @param string $column_name Column name
* @param string $drop_ddl SQL statement to drop column.
* @return bool True on success or if the column doesn't exist, false on failure.
*/
function maybe_drop_column($table_name, $column_name, $drop_ddl)
{
global $wpdb;
foreach ($wpdb->get_col("DESC {$table_name}", 0) as $column) {
if ($column == $column_name) {
// Found it, so try to drop it.
$wpdb->query($drop_ddl);
// We cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC {$table_name}", 0) as $column) {
if ($column == $column_name) {
return false;
}
}
}
}
// Else didn't find it.
return true;
}