私はワードプレスコーデックスとプロのワードプレスを読みました。どちらも次のようなものを使用しているようです
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
テーブルが存在するかどうかを確認します。CREATE TABLE IF NOT EXISTS ( ... )
使用しない理由はありますか?1つのクエリでテーブルをチェックして作成します。それとも何か不足していますか?
私はワードプレスコーデックスとプロのワードプレスを読みました。どちらも次のようなものを使用しているようです
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
テーブルが存在するかどうかを確認します。CREATE TABLE IF NOT EXISTS ( ... )
使用しない理由はありますか?1つのクエリでテーブルをチェックして作成します。それとも何か不足していますか?
回答:
免責事項:私はWordPressの第一人者ではなく、MySQL DBAだけです
別のクエリを使用する場合は、これを試してください
SELECT COUNT(1) FROM information_schema.tables WHERE table_schema='dbname' AND table_name='tbname';
0(テーブルが存在しない場合)または1(テーブルが存在する場合)を返します。
これを試してください:
global $wpdb;
$table_name = $wpdb->base_prefix.'custom_prices';
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) );
if ( ! $wpdb->get_var( $query ) == $table_name ) {
// go go
}
これがどのようにまたはなぜ機能するのかわかりませんが、私は次のことができます:
if (in_array('snippets', $wpdb->tables)) {
// do something if wp_snippets exists
}