Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查mysql数据库是否存在?_Php_Mysql - Fatal编程技术网

Php 如何检查mysql数据库是否存在?

Php 如何检查mysql数据库是否存在?,php,mysql,Php,Mysql,如果不存在CREATEDATABASE或新的PDO(“mysql:host=localhost;db=dbname”…,则不能使用CREATEDATABASE 应该这样做。如果没有,首先通过 CREATE DATABASE IF NOT EXISTS 它将返回数据库名称本身,因此您可以检查查询的计数是否>0,结果是否为!=0…等等 查询的问题是反勾号的使用错误,您需要使用单引号,而不是反勾号 '如果@robin的答案中有一个打字错误,我认为条件应该是如果(!empty($result))带有感

如果不存在CREATEDATABASE或新的PDO(“mysql:host=localhost;db=dbname”…,则不能使用CREATEDATABASE

应该这样做。如果没有,首先通过

CREATE DATABASE IF NOT EXISTS
它将返回数据库名称本身,因此您可以检查查询的计数是否>0,结果是否为!=0…等等

查询的问题是反勾号的使用错误,您需要使用单引号,而不是反勾号


'如果@robin的答案中有一个打字错误,我认为条件应该是
如果(!empty($result))
带有感叹号。它不存在,因为数据库存在时$result不是空的。因此使用此
$result=$pdo\u mysql->查询(“像这样显示数据库”).DB_NAME。“”);如果(!empty($result)){print“exists”}否则{print“no exists”}
应该可以工作。我希望这对您有所帮助:

PDO::query()
返回PDOStatement对象,或在失败时返回
FALSE

您的查询是有效的,永远不会失败(忽略可能的低级问题)

$result
将始终计算为
TRUE
-ish,因此流将始终进入
if($result)

if(empty($result))
毫无意义)

您需要检查查询是否返回(零结果不是错误)


:

如果关联的PDO语句执行的最后一条SQL语句是SELECT语句,则某些数据库可能会返回该语句返回的行数。但是,对于所有数据库来说,这一行为并不保证,对于可移植应用程序来说也不应依赖

更安全的做法是:


我更改了括号,但我总是得到“不存在”$result=$pdo_mysql->query(“显示像''.DB_NAME.''')这样的数据库);if(empty($result)){print“exists”;}else{print“no exists”;}不工作。总是“no exists”你的代码应该可以工作,我也可以。你确定你正在连接的用户可以访问数据库吗?你确定数据库名称拼写正确吗?数据库名称中没有特殊字符?
var\u dump()
确保所有变量都可以。我想为什么不工作。问题在括号中。我必须编写一个查询(“创建数据库”).DB_NAME.“`”)(写作时带“`”)和“?@ales请注意我最后的编辑。
CREATE DATABASE IF NOT EXISTS
SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'dbname'
if ($result->fetch() === FALSE) {
    // result set is empty
}