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.
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
| Version | Description |
|---|---|
| 1.0.0 | Introduced. |
Before calling this function you have to manually include ‘upgrade.php’, otherwise you will end up with white screen of death.
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );