修改数据库名后PHP注册表单提交报Unknown Database错误求助
解决「Unknown Database」错误的步骤
看起来你明明改了数据库名配置,却还是卡在连接错误上,我帮你梳理下代码里的问题和排查方向:
1. 先修正代码里的明显错误
你的连接代码里,mysqli_connect其实已经指定了数据库名csdvideoapp,这一步已经在尝试连接到目标数据库了,但有两个小问题需要调整:
- 错误提示里的
mysqli_error()没有传入连接对象,应该改成mysqli_error($conn),这样才能显示具体的连接错误细节,方便你定位问题。 - 你注释掉的
mysqli_select_db用法完全不对,这个函数的正确语法是mysqli_select_db(连接对象, 数据库名),你写反了参数还多传了用户名密码,哪怕取消注释也会报错。
修正后的基础连接代码可以改成这样:
<?php // Connect to server and select database. $conn = mysqli_connect("localhost", "root", "", "csdvideoapp") or die("Connection failed: " . mysqli_error($conn)); // 如果你不需要切换数据库,下面这行完全可以删掉 // mysqli_select_db($conn, "csdvideoapp") or die("Cannot connect to database: " . mysqli_error($conn)); ?>
2. 核心排查:确认数据库真的存在
报错「Unknown Database」最常见的原因是你配置的数据库名在MySQL里根本不存在,别光看代码配置,实际去验证下:
- 打开MySQL命令行或者phpMyAdmin,登录后执行
SHOW DATABASES;,看看列表里有没有csdvideoapp这个数据库。 - 如果没有,先创建它:
CREATE DATABASE csdvideoapp;(注意:MySQL在Linux环境下区分数据库名大小写,Windows环境不区分,别写错大小写)
3. 其他可能的小坑
- 确认MySQL服务处于运行状态,有时候服务停了也会抛出奇怪的连接错误。
- 检查root用户的密码是否正确:如果你的MySQL root账号设置了密码,
mysqli_connect的第三个参数不能是空字符串,要改成对应的密码。 - 如果你是在远程服务器上部署,还要确认
localhost是否允许连接,或者换成服务器的实际IP地址。
按照上面的步骤排查,应该能解决这个问题啦!
内容的提问来源于stack exchange,提问作者Akshay
相关产品推荐
相关产品推荐

