10

テーブルが存在するかどうかを確認しようとしています。存在する場合は、いくつかのアクションを実行します。チェックを完了するのではなく、テーブルが存在しないというエラーが表示され続けます。コードは次のとおりです。

$tableExists = $db->prepare("SHOW TABLES LIKE $table_array");
$tableExists->execute();
if($tableExists->rowCount() > 0) {
   // do some code
 } else {
   echo "Unable to add because table does not exists";
}

更新:以下の提案に従って、私は今次のことを行います:

$tableExists = $db->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ?"); 
$tableExists->execute(array($table_array)); 
if(!is_null($tableExist)) { 
    //do something
} else {
    echo "table does not exist;
}

ただし、テーブルが存在するかどうかを判断する if ステートメントは機能していないようです。他に何ができますか?

4

4 に答える 4

11

information_schemaを使用して、テーブルが存在するかどうかを尋ねてみてください。何かのようなもの

SELECT 
  * 
FROM
  information_schema 
WHERE TABLE_NAME = "$table_array" 

保持されているすべてのものに目を通してinformation_schemaください。データベースについて保存されている情報に驚くでしょう:)

于 2013-08-05T22:17:33.890 に答える
2

これを試して:

select case when (select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_NAME='offices') = 1 then 'exists' else 'does not exist' end
于 2013-08-05T22:24:16.987 に答える
2
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) 
    echo "Table exists";
else echo "Table does not exist";

ref: MySQL テーブルが存在するかどうかを確認する

于 2013-08-05T22:15:41.793 に答える
-1

これを試して:

select * from table_schema //this is your database name    
where table_name // your table name    
= '$table_array'

これがうまくいくことを願っています。

于 2016-03-22T13:27:31.243 に答える