PHP中的sql语句不更新数据库[关闭]
Posted
技术标签:
【中文标题】PHP中的sql语句不更新数据库[关闭]【英文标题】:sql statement in PHP doesn't update the Database [closed] 【发布时间】:2021-08-20 05:27:48 【问题描述】:当我自己输入一个数字时,数据库会更新为 Success,但是当我尝试从 $_POST 访问相同的数字时,它会完成事务,但不会影响行,即使它使用的是相同的数字。
完美运行并更新数据库的查询示例
$sql = "UPDATE `transactions` SET `status` ='Success' WHERE `transactions`.`txn_id` = 65765756";
不起作用的查询示例
$sql = "UPDATE `transactions` SET `status` ='Success' WHERE `transactions`.`txn_id` = ".$_POST['m_payment_id'];
【问题讨论】:
echo $sql;
显示什么?
我不使用浏览器 我收到来自银行的发布请求,执行 php 文件以修改数据库@kmoser
我认为您没有理解我的意思:确切的 SQL 语句是什么?您可以将其记录在某个地方以进行调试吗?
【参考方案1】:
首先,检查值中的内容,并确保它与您手动输入的内容相同。
var_dump($_POST['m_payment_id'])
其次,没有任何其他检查的代码是SQL注入漏洞。
您可以将值转换为整数以防止这种情况发生,例如intval($_POST['m_payment_id'])
不过,理想情况下,您应该使用bindings。
【讨论】:
以上是关于PHP中的sql语句不更新数据库[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用未知数据根据另一个表中的数据更新 SQL 表吗? [关闭]