2

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

这是伪代码:

if (database exist)
{do nothing}

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

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

4

4 回答 4

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

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

CREATE DATABASE IF NOT EXISTS DBName;
于 2013-08-05T21:19:20.683 回答
4

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
}
于 2013-08-05T21:23:30.197 回答
0

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

CREATE DATABASE IF NOT EXISTS <name of the database>;
于 2013-08-05T21:25:41.543 回答
0

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

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

于 2013-08-05T21:23:23.940 回答