如何检查php中是不是已经存在mysql数据库? [复制]

Posted

技术标签:

【中文标题】如何检查php中是不是已经存在mysql数据库? [复制]【英文标题】:How to check if a mysql database already exists in php? [duplicate]如何检查php中是否已经存在mysql数据库? [复制] 【发布时间】:2013-08-05 21:17:46 【问题描述】:

基本上,我想创建一个数据库,但我知道如果你想创建一个已经存在的mysql数据库会有问题。那么如何检查它是否已经存在于 php 中呢?

这是伪代码:

if (database exist)
do nothing

//if it doesn't exist
else 
create the database

现在我已经知道如何自己创建数据库了。这对我来说很容易,我只是不知道如何检查一个是否已经存在。

【问题讨论】:

为什么不将IF NOT EXISTS 子句添加到您的数据库创建语句中? 大多数网站都有一个小的数据库集,并且数据库是手动创建的,因此通常不是问题。 【参考方案1】:
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'

如果您只需要知道数据库是否存在以便在尝试创建它时不会出错,只需使用(从这里):

CREATE DATABASE IF NOT EXISTS DBName;

【讨论】:

***.com/revisions/838993/1的副本【参考方案2】:

如果无法选择数据库,所有这些都返回false。 这意味着它不存在或者您没有访问权限。

bool mysql_select_db ( string $database_name [, resource $link_identifier = NULL ] )

bool mysqli_select_db ( mysqli $link , string $dbname )

也可以使用 PDO。 或者 mysqli 作为对象:

try 
    $mysqli = new mysqli("localhost", "my_user", "my_password");
 catch (\Exception $e) 
    echo $e->getMessage(), PHP_EOL;

if ($mysqli->select_db('your_database') === false) 
    // Create db

【讨论】:

【参考方案3】:

继续尝试创建表。 MySQL 将抛出一个错误,您可以测试该表是否已存在。

如果您只是想避免错误并且无论如何都要创建表,那么您可以在您的CREATE 语句中添加一个IF NOT EXISTS 子句。

【讨论】:

【参考方案4】:

既然你想检查它是否存在,如果它不存在,你想创建它,你可以同时做这两个。我假设您拥有执行以下操作所需的权限:

CREATE DATABASE IF NOT EXISTS <name of the database>;

【讨论】:

以上是关于如何检查php中是不是已经存在mysql数据库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

检查mysql表php中是不是存在任何记录

PHP:检查 MySQL TABLE 是不是已作为错误条件存在? [复制]

如何检查一个值是不是已经存在以避免重复?

如何使用 PHP PDO 检查 MySQL 中是不是存在表? [复制]

如何检查用户是不是存在于数据库表中?

MySQL 检查表是不是已经存在