PHP更新SQL行数据不生效,$SearchQueryParameter无显示问题排查
问题原因
PHP中的超全局变量大小写敏感,你在审批处理代码中错误使用了小写g的$_Get获取参数,正确写法应为全大写的$_GET,这是导致两个异常的共同根源:
$_Get["id"]无法正常获取URL传递的评论ID,所以$SearchQueryParameter变量为空,导致成功提示里没有对应参数显示- UPDATE语句的WHERE条件匹配空ID,找不到需要修改的评论记录,因此数据库不会更新。但由于SQL本身语法没有错误,
query()方法仍然会返回真值,所以会触发成功提示逻辑。
修复方案
修改审批处理文件中获取ID的代码即可:
// 原错误代码 // $SearchQueryParameter = $_Get["id"]; // 替换为 $SearchQueryParameter = $_GET["id"];
优化建议
- 可以通过判断执行后的影响行数确认是否真的完成了更新,避免SQL执行成功但未修改数据的误判:
if ($Execute && $ConnectingDB->affected_rows > 0) { // 成功逻辑 }
- 现有代码直接拼接SQL参数存在SQL注入风险,建议改用预处理语句处理参数。
内容的提问来源于stack exchange,提问作者Oliver Tucker
相关产品推荐
相关产品推荐

