maybe_drop_column()WP 1.0.0

Drops column from database table, if it exists.

Хуков нет.

Возвращает

true|false. True on success or if the column doesn't exist. False on failure.

Использование

maybe_drop_column( $table_name, $column_name, $drop_ddl );
$table_name(строка) (обязательный)
Database table name.
$column_name(строка) (обязательный)
Table column name.
$drop_ddl(строка) (обязательный)
SQL statement to drop column.

Заметки

  • Global. wpdb. $wpdb WordPress database abstraction object.

Список изменений

С версии 1.0.0 Введена.

Код maybe_drop_column() WP 6.5.2

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;
}