在XAMPP服务器上PHP连接MySQL数据库查询报错求助
排查PHP连接MySQL插入数据的报错问题
嘿,我帮你梳理下代码里的问题,你遇到的“error querying database”报错主要是SQL语句的语法错误导致的,还有几个可以优化的地方帮你更快定位问题:
1. 核心问题:SQL语句的语法错误
你的INSERT字段列表里少了关键的逗号,导致数据库无法解析这条语句。看这段代码里的字段拼接:
$query = "INSERT INTO aliens_abduction (first_name, last_name " . "when_it_happened, how_long, how_many, alien_description, " . "what_they_did, fang_spotted, other, email) " . "VALUES ('Sally', 'Jones', '3 days ago', '1 day', 'four', " . "'slimmy', 'asked questions', " . "'yes', 'I may have seen your dog. Contact me.', " . "'sally@gregs-list.net')";
last_name后面没有加逗号就直接拼接了when_it_happened,数据库会把这两个字段当成一个无效的字段名,自然触发报错。修正后的字段列表应该补上逗号:
INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_they_did, fang_spotted, other, email)
2. 优化错误提示,获取具体报错信息
原来的die ('Error querying database.')只会显示通用提示,没法知道具体错在哪。建议改成下面这样,让MySQL返回具体的错误内容,方便你快速排查:
$result = mysqli_query($dbc, $query) or die ('Error querying database: ' . mysqli_error($dbc));
3. 额外排查步骤(以防还有其他隐藏问题)
- 确认XAMPP里的MySQL服务已经正常启动
- 检查
aliendatabase数据库是否真的存在,aliens_abduction表是否创建成功,字段名和你代码里的完全一致(比如fang_spotted字段的类型是否接受字符串'yes') - 确认root用户的密码是否正确(XAMPP默认root密码为空,你的代码里也是空的,这部分没问题)
修正后的完整代码
// 连接数据库 $dbc = mysqli_connect('localhost', 'root', '', 'aliendatabase') or die ('Error connecting to MySQL server.'); // 创建正确的查询语句 $query = "INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_they_did, fang_spotted, other, email) " . "VALUES ('Sally', 'Jones', '3 days ago', '1 day', 'four', 'slimmy', 'asked questions', 'yes', 'I may have seen your dog. Contact me.', 'sally@gregs-list.net')"; // 执行查询并显示具体错误 $result = mysqli_query($dbc, $query) or die ('Error querying database: ' . mysqli_error($dbc)); // 可选:执行成功后给出提示 echo "数据插入成功!"; // 关闭数据库连接 mysqli_close($dbc);
内容的提问来源于stack exchange,提问作者lapzter
相关产品推荐
相关产品推荐

