创建表报错:未选择数据库,修改db_database后问题仍存在求助
解决创建表时「未选择数据库」的问题
嘿,我一眼就揪出问题所在了——你把mysqli构造函数的参数顺序搞混啦!这才是导致“未选择数据库”报错的根本原因,和你修改db_database参数没关系哦。
核心问题:参数顺序完全错误
mysqli类的构造函数正确参数顺序是:new mysqli(主机名, 用户名, 密码, 数据库名)
而你的代码里把「数据库名」放在了第二个位置,还把「用户名」和「密码」的顺序也搞反了!这就导致PHP根本没正确连接到指定的数据库,自然会抛出“未选择数据库”的错误。
修正后的完整代码
$db_hostname = 'localhost'; $db_database = 'web_sample'; $db_username = ''; // 这里要填你的数据库用户名,比如默认的root $db_password = ''; // 对应填你的数据库密码,本地测试可能为空 // 修正参数顺序:主机名 → 用户名 → 密码 → 数据库名 $connection = new mysqli($db_hostname, $db_username, $db_password, $db_database); if ($connection->connect_error) die($connection->connect_error); // 补全你的表结构(示例) $query = "CREATE TABLE users( forename VARCHAR(20) NOT NULL, surname VARCHAR(20) NOT NULL, username VARCHAR(20) NOT NULL, PRIMARY KEY (username) )"; // 执行创建表操作并捕获错误 if (!$connection->query($query)) { die("创建表失败: " . $connection->error); } // 记得关闭数据库连接 $connection->close();
额外排查小贴士
- 先确认
web_sample这个数据库已经在MySQL服务器上存在,如果没有的话,需要先执行CREATE DATABASE web_sample;来创建它 - 数据库用户名和密码要填对,本地测试环境默认用户名通常是
root,密码根据你的MySQL设置填写(可能为空) - 确保你的MySQL服务正在正常运行
内容的提问来源于stack exchange,提问作者chimichi004
相关产品推荐
相关产品推荐

