MySQLi Table Exists

2020-03-26 19:47发布

问题:

In PHP, what would be the best way of seeing if a table exists?

This is what I am using so far

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;
}

回答1:

What you posted is going to throw an error if the table doesn't exist. Try this instead:

SHOW TABLES LIKE 'tablename';

And ensure that you get exactly one row back.



回答2:

Colin has the right solution -- to use SHOW TABLES LIKE. Here is what it would look like using your code:

public function TableExists($table) {
  $res = $this->Query("SHOW TABLES LIKE $table");
  return mysql_num_rows($res) > 0;
}


回答3:

For seeing, if [table name] exist

SELECT COUNT(*)
FROM information_schema.tables 
WHERE table_schema = '[database name]' 
AND table_name = '[table name]';


回答4:

An alternative to the SHOW TABLES approach from other answers is using the INFORMATION_SCHEMA like this:

SELECT COUNT(*)
  FROM INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'tablename';


回答5:

$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";
}


标签: php mysqli