致命错误:未捕获mysqli_sql_exception:未知数据库“test_db”。即使我以编程方式创建了数据库,我也不断收到此错误

Fatal error: Uncaught mysqli_sql_exception: Unknown database 'test_db'. I keep getting this error even though I programatically created the database

提问人:Bheki Fuzwayo 提问时间:11/25/2022 最后编辑:Bheki Fuzwayo 更新时间:10/4/2023 访问量:3263

问:

代码如下

<?php
$servername = "localhost";
$usrname   = "root";
$pwd = "";
$db = "test_db";
// connect to the database
$conn= mysqli_connect($servername, $usrname, $pwd,$db);
if (!$conn){
    die('connection failed' . mysqli_connect_error());
}
// Create database
$sql = "CREATE DATABASE IF NOT EXISTS test_db";
    if (mysqli_query($conn, $sql)) {
    echo "Database created successfully<br>";
} else {
  echo "Error creating database: " . mysqli_error($conn);
}
?>

我不确定发生了什么,因为我确定我在打字时没有犯错误。因为它一直向我显示有一个未知的数据库,尽管我做了一个 CREATE DATABASE 语句。 我不知道我是否还需要做其他事情,但从所有方面来看,代码应该可以工作。 它应该回显“数据库创建成功”或错误消息。

php mysql sql mysqli

评论

0赞 Mehrwarz 11/25/2022
当连接为 null 或安装失败时,无法创建数据库。使用 shell 创建数据库或连接到其他数据库以创建 MySQL 连接。
1赞 Scuzzy 11/25/2022
不要使用 DB 参数进行连接,然后在数据库存在后使用,前提是您的凭证有权调用mysqli_connect($servername,$usrname,$pwd)mysqli_select_db($db)CREATE DATABASE
0赞 Nico Haase 11/25/2022
您尝试过如何解决问题?你被困在哪里?

答:

-2赞 Underdeveloper 11/25/2022 #1

$conn= mysqli_connect($servername, $usrname, $pwd,$db);

您正在尝试连接到最初不存在的数据库,因此您会收到致命错误。

尝试使用 try catch 块创建新数据库

try{
$conn= mysqli_connect($servername, $usrname, $pwd,$db);
}cath(Exception $e){
//your code
}

评论

0赞 Community 11/28/2022
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞 Hitesh Narola 11/25/2022 #2
<?php
$servername = "localhost";
$usrname   = "root";
$pwd = "";
$db = "test_db";

// connect to the database
$conn= mysqli_connect($servername, $usrname, $pwd);

// Create database
$sql = "CREATE DATABASE $db";
mysqli_query($conn, $sql);

你的代码很好,你只需要从 mysqli_connect() 中删除$db。 因为您正在尝试使用尚不存在的数据库“test_db”。