maybe_drop_column( string $table_name, string $column_name, string $drop_ddl ): bool

Drops column from database table, if it exists.

Parameters

$table_name

string

Required

Database table name.

$column_name

string

Required

Table column name.

$drop_ddl

string

Required

SQL statement to drop column.

Return

bool True on success or if the column doesn"t exist. False on failure.

Source

File: wp-admin/install-helper.php.

View all references

function maybe_drop_column( $table_name, $column_name, $drop_ddl ) {

global $wpdb;

// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Cannot be prepared. Fetches columns for table names.

foreach ( $wpdb->get_col( "DESC $table_name", 0 ) as $column ) {

if ( $column === $column_name ) {

// Found it, so try to drop it.

// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- No applicable variables for this query.

$wpdb->query( $drop_ddl );

// We cannot directly tell whether this succeeded!

// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Cannot be prepared. Fetches columns for table names.

foreach ( $wpdb->get_col( "DESC $table_name", 0 ) as $column ) {

if ( $column === $column_name ) {

return false;

}

}

}

}

// Else didn"t find it.

return true;

}

Leave a Reply

Your email address will not be published. Required fields are marked *