You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派中PHP无法连接MySQL问题求助

解决你的PHP数据库连接&500错误问题

首先,HTTP 500错误是服务器内部错误,想要快速定位问题,第一步一定要看Apache的错误日志,在树莓派上你可以通过这条命令查看最新的错误信息:

tail -f /var/log/apache2/error.log

当你再次提交表单或者访问测试连接脚本时,日志里会显示具体的错误原因(比如语法错误、数据库连接失败的详细信息),这是排查500错误的关键。

接下来看你代码里的几个明显问题:

1. 数据库连接代码的语法错误

你最初的连接代码:

$con=mysqli_connect("'localhost'",pi,"pwd","testdatabase");

有三个致命错误:

  • "'localhost'" 多套了一层单引号,应该写成 "localhost"
  • pi 和 pwd 是字符串类型的用户名和密码,必须用引号包裹,比如 "pi" 和 "你实际的MySQL密码"
  • 替换"pwd"为你登录MySQL时输入的真实密码(就是你用mysql -u pi -p时输入的密码)

修正后的连接代码应该是:

$con = mysqli_connect("localhost", "pi", "你的真实密码", "testdatabase");

2. 测试连接脚本用错了用户

你后来的测试脚本用了root用户,但树莓派上的MySQL(或MariaDB)默认root用户是通过auth_socket插件认证的——也就是说它只能通过本地终端的root用户登录,不能用密码通过PHP脚本登录,这就是你测试连接也失败的原因。

既然你能通过mysql -u pi -p正常登录,测试连接时就应该用pi用户,把测试脚本改成:

<?php
$link = mysqli_connect("localhost", "pi", "你的真实密码");
if($link === false) {
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
echo "Connect Successfully. Host info: " . mysqli_get_host_info($link);
mysqli_close($link);
?>

3. 严重的SQL注入风险

你最初的插入脚本直接把$_POST[email]和$_POST[password]拼到SQL语句里,这会导致严重的SQL注入漏洞,攻击者可以轻易篡改你的数据库。必须使用预处理语句(prepared statements)来解决这个问题,修正后的插入脚本示例:

<?php
$con = mysqli_connect("localhost", "pi", "你的真实密码", "testdatabase");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

// 预处理SQL语句,用?作为占位符
$stmt = mysqli_prepare($con, "INSERT INTO users (email, password) VALUES (?, ?)");
// 绑定参数:"ss"表示两个字符串类型的参数
mysqli_stmt_bind_param($stmt, "ss", $_POST['email'], $hashed_password);

// 重要:不要明文存储密码,用password_hash加密
$hashed_password = password_hash($_POST['password'], PASSWORD_DEFAULT);

if(mysqli_stmt_execute($stmt)){
    echo "1 record added";
} else {
    die('Error: ' . mysqli_error($con));
}

// 关闭语句和连接
mysqli_stmt_close($stmt);
mysqli_close($con);
?>

额外提醒

  • 确保users表确实存在email和password字段,并且字段类型正确(比如email是VARCHAR,password是VARCHAR(255)因为加密后的密码比较长)
  • 如果还是有问题,先单独测试连接脚本,确认能正常连接后再测试表单提交

内容的提问来源于stack exchange,提问作者Prem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:23:43