基本上,我想创建一个数据库,但我知道如果你想创建一个已经存在的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;
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>;
继续尝试创建表。MySQL 将抛出一个错误,您可以测试该表是否已存在。
如果您只是想避免错误并且无论如何都要创建表,那么您可以在语句中添加一个IF NOT EXISTS
子句CREATE
。