如何检查php中是否已存在mysql数据库?

时间:2013-08-05 21:17:47

标签: php mysql lamp

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

这是伪代码:

if (database exist)
{do nothing}

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

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

4 个答案:

答案 0 :(得分:5)

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

如果您只需要知道数据库是否存在,那么当您尝试创建数据库时不会出现错误,只需使用(从此处):

CREATE DATABASE IF NOT EXISTS DBName;

答案 1 :(得分:3)

如果无法选择数据库,则所有这些都返回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
}

答案 2 :(得分:0)

继续尝试创建表格。如果表已经存在,MySQL将抛出一个可以测试的错误。

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

答案 3 :(得分:0)

由于您要检查它是否存在以及是否,您想要创建它,您可以同时执行这两项操作。我假设您拥有执行以下操作所需的权限:

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