基本上,我想创建一个数据库,但是我知道如果你想创建一个已经存在的mysql数据库,会出现问题。那么如何检查它是否已经存在于PHP中?如何检查一个MySQL数据库是否已经存在于PHP中?
这里是伪代码:
if (database exist)
{do nothing}
//if it doesn't exist
else
{create the database}
现在我已经知道了如何创建数据库它的自我。这对我来说很简单,我只是不知道如何检查是否已经存在。
基本上,我想创建一个数据库,但是我知道如果你想创建一个已经存在的mysql数据库,会出现问题。那么如何检查它是否已经存在于PHP中?如何检查一个MySQL数据库是否已经存在于PHP中?
这里是伪代码:
if (database exist)
{do nothing}
//if it doesn't exist
else
{create the database}
现在我已经知道了如何创建数据库它的自我。这对我来说很简单,我只是不知道如何检查是否已经存在。
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
如果你只需要知道,如果一个数据库存在,所以当你尝试创建它,你不会得到一个错误,只需使用(从这里开始):
CREATE DATABASE IF NOT EXISTS DBName;
先走一步,尝试创建表格。如果表已经存在,MySQL会抛出一个你可以测试的错误。
如果您只是想避免发生错误而无论如何都创建了表,那么您可以将IF NOT EXISTS
子句添加到您的CREATE
语句中。
如果无法选择数据库,所有这些将返回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
}
既然你要检查它是否存在,如果它不,你要创建它,你可以两者同时进行。我假设您有执行以下操作所必需的特权:
CREATE DATABASE IF NOT EXISTS <name of the database>;
为什么不只是将“IF NOT EXISTS”子句添加到您的DB create语句中? – keithhatfield
大多数网站都有一个小的数据库集,而且dbs是手工创建的,所以它通常不是问题。 – 2013-08-05 21:20:27