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 表吗? [关闭]

sql语句将Excel中的一列批量更新到sql server中的一列中?

单个查询中的多个 SQL 更新语句

PHP如何批量更新数据?急!!!

php - 用多行更新 sql 语句

PHP如何用输入的数据更新数据库?