2

PHPで、テーブルが存在するかどうかを確認する最良の方法は何ですか?

これは私がこれまでに使用しているものです

public function TableExists($table) {
    $res = $this->Query("SELECT 1 FROM $table");

    if(isset($res->num_rows)) {
        return $res->num_rows > 0 ? true : false;
    } else return false;
}
4

5 に答える 5

15

テーブルが存在しない場合、投稿したものはエラーをスローします。代わりにこれを試してください:

SHOW TABLES LIKE 'tablename';

そして、正確に 1 行戻るようにしてください。

于 2013-03-10T12:44:20.303 に答える
12

Colin は適切な解決策を持っています。使用することSHOW TABLES LIKEです。コードを使用すると、次のようになります。

public function TableExists($table) {
  $res = $this->Query("SHOW TABLES LIKE $table");
  return mysql_num_rows($res) > 0;
}
于 2013-03-10T12:51:19.220 に答える
2

見るために、[table name]存在する場合

SELECT COUNT(*)
FROM information_schema.tables 
WHERE table_schema = '[database name]' 
AND table_name = '[table name]';
于 2013-03-10T13:09:23.163 に答える
1

SHOW TABLES他の回答からのアプローチの代替は、次のINFORMATION_SCHEMAように使用することです。

SELECT COUNT(*)
  FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'tablename';
于 2013-03-10T13:11:37.273 に答える
0
$con = mysqli_connect($hostname,$username,$password,$database);

if(mysqli_num_rows(mysqli_query($con,"SHOW TABLES LIKE 'accman'"))) {
  echo "DB EXIST";
} else {
  echo "DB Not Exist";
}
于 2019-04-27T09:17:45.690 に答える