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

PHP实现给玩家加2金币功能时出现MySQL数据库500错误如何解决

问题排查与修复方案

500错误触发原因

  • 代码存在语法解析错误:你定义SQL查询字符串的语句中,外层使用单引号包裹,内部$_session['username']的单引号会提前与外层单引号闭合,导致PHP解析失败抛出致命错误,这是返回500的直接原因。同时PHP超全局变量$_SESSION大小写敏感,你写的小写$_session无法正确读取会话中的用户名数据。
  • SQL语句仅定义未执行:你只声明了$query字符串,没有调用数据库连接对象的执行方法,即使语法修复后金币数据也不会更新到数据库。
  • SQL写法存在兼容性问题:部分旧版本MySQL不支持gold +=2的更新写法,替换为标准写法gold = gold + 2兼容性更强。

修复代码示例

假设你的config.php中已经初始化了$conn作为mysqli数据库连接对象,将原金币更新的代码段替换为以下内容即可:

<?php
require_once 'config.php';
// 使用预处理语句避免SQL注入风险
$updateStmt = $conn->prepare("UPDATE users SET gold = gold + 2 WHERE username = ?");
$updateStmt->bind_param("s", $_SESSION['username']);
$updateStmt->execute();
$updateStmt->close();
?>

如果你的数据库连接用的是PDO组件,对应调整为PDO的预处理执行逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:27:06