如何检查php中是不是已经存在mysql数据库? [复制]
Posted
技术标签:
【中文标题】如何检查php中是不是已经存在mysql数据库? [复制]【英文标题】:How to check if a mysql database already exists in php? [duplicate]如何检查php中是否已经存在mysql数据库? [复制] 【发布时间】:2013-08-05 21:17:46 【问题描述】:基本上,我想创建一个数据库,但我知道如果你想创建一个已经存在的mysql数据库会有问题。那么如何检查它是否已经存在于 php 中呢?
这是伪代码:
if (database exist)
do nothing
//if it doesn't exist
else
create the database
现在我已经知道如何自己创建数据库了。这对我来说很容易,我只是不知道如何检查一个是否已经存在。
【问题讨论】:
为什么不将IF NOT EXISTS
子句添加到您的数据库创建语句中?
大多数网站都有一个小的数据库集,并且数据库是手动创建的,因此通常不是问题。
【参考方案1】:
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
如果您只需要知道数据库是否存在以便在尝试创建它时不会出错,只需使用(从这里):
CREATE DATABASE IF NOT EXISTS DBName;
【讨论】:
***.com/revisions/838993/1的副本【参考方案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
【讨论】:
【参考方案3】:继续尝试创建表。 MySQL 将抛出一个错误,您可以测试该表是否已存在。
如果您只是想避免错误并且无论如何都要创建表,那么您可以在您的CREATE
语句中添加一个IF NOT EXISTS
子句。
【讨论】:
【参考方案4】:既然你想检查它是否存在,如果它不存在,你想创建它,你可以同时做这两个。我假设您拥有执行以下操作所需的权限:
CREATE DATABASE IF NOT EXISTS <name of the database>;
【讨论】:
以上是关于如何检查php中是不是已经存在mysql数据库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
PHP:检查 MySQL TABLE 是不是已作为错误条件存在? [复制]