【发布时间】:2019-09-09 09:48:06
【问题描述】:
如果我的 dbLogin 文件中不存在数据库,我正在使用 PHP 和 mysqli 并尝试创建数据库。似乎这应该是一件相当简单的事情。它似乎在第一次创建尝试时因错误而挂起,不会越过或捕获错误。
这是我非常简单的代码:
<?php
$con = '';
try {
$con = new mysqli("host", "user", "pass", "db");
}
catch(Exception $e) {
echo "Error: $e<br />";
$con = new mysqli("host", "user", "pass");
$con->query("CREATE DATABASE IF NOT EXISTS db;");
}
/* check connection */
if ($con->connect_errno) {
printf("Connect failed: %s\n", $con->connect_error);
exit();
}
?>
现在,当我运行上面的代码时,我得到的只是以下错误:
警告:mysqli::__construct(): (HY000/1049): 未知数据库 第 6 行 xyz\DBLogin.php 中的“db”连接 失败:未知数据库 'db'
第 6 行是 try 块内的行。它不会创建数据库,也不会越过错误。
【问题讨论】:
-
在连接中省略“db”,你不需要它,你为什么要尝试连接两次?您的捕获是针对错误的,您创建的 db 应该在 try 或新的 try catch 块中