maybe_create_table( string $table_name, string $create_ddl ): bool

Creates a table in the database if it doesn’t already exist.

Parameters

$table_namestringrequired
Database table name.
$create_ddlstringrequired
SQL statement to create table.

Return

bool True on success or if the table already exists. False on failure.

Source

function maybe_create_table( $table_name, $create_ddl ) {
	global $wpdb;

	foreach ( $wpdb->get_col( 'SHOW TABLES', 0 ) as $table ) {
		if ( $table === $table_name ) {
			return true;
		}
	}

	// Didn't find it, so try to create it.
	// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- No applicable variables for this query.
	$wpdb->query( $create_ddl );

	// We cannot directly tell whether this succeeded!
	foreach ( $wpdb->get_col( 'SHOW TABLES', 0 ) as $table ) {
		if ( $table === $table_name ) {
			return true;
		}
	}

	return false;
}

Changelog

VersionDescription
1.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.