2013-08-05 142 views
0

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

这里是伪代码:

if (database exist) 
{do nothing} 

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

现在我已经知道了如何创建数据库它的自我。这对我来说很简单,我只是不知道如何检查是否已经存在。

+1

为什么不只是将“IF NOT EXISTS”子句添加到您的DB create语句中? – keithhatfield

+0

大多数网站都有一个小的数据库集,而且dbs是手工创建的,所以它通常不是问题。 – 2013-08-05 21:20:27

回答

3
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName' 

如果你只需要知道,如果一个数据库存在,所以当你尝试创建它,你不会得到一个错误,只需使用(从这里开始):

CREATE DATABASE IF NOT EXISTS DBName; 
0

先走一步,尝试创建表格。如果表已经存在,MySQL会抛出一个你可以测试的错误。

如果您只是想避免发生错误而无论如何都创建了表,那么您可以将IF NOT EXISTS子句添加到您的CREATE语句中。

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

既然你要检查它是否存在,如果它,你要创建它,你可以两者同时进行。我假设您有执行以下操作所必需的特权:

CREATE DATABASE IF NOT EXISTS <name of the database>; 
相关问题