【发布时间】:2022-12-03 01:35:25
【问题描述】:
下午好,我正在尝试将数据插入到来自另一个表的表中,如下所示:
decimal saldo = getDbSaldo($@"SELECT Balance FROM clients WHERE Pin='{pin}' AND CardNumber = '{numeroCartao}'");
insertExtrato($@"insert into MoveInfo (CardNumber, Deposit, Saldo, Withdraw, DataHora) Values({numeroCartao}, {deposit}, {saldo}, {withdraw}, getDate())");
我已经坚持了两天了。
【问题讨论】:
-
您正在执行的 SQL 命令的实际运行时值是多少?请注意,以这种方式将字符串组合在一起以构建 SQL 命令是一个 SQL 注入漏洞。您应该改用查询参数。
-
如果您使用参数而不是连接字符串,您可能永远不会遇到此错误。现在请告诉我们用于 INSERT INTO 语句的变量中存在哪些值
-
但问题可能是 SQL 注入? @大卫
-
@EmanuelSantos:当然可以,是的。如果你不控制你的 SQL 代码的语法,并允许它从任何东西构建,那么 SQL 代码可能是有效的,可能是无效的,可能是恶意的,可能是任何东西。
-
假设萨尔多是10.42.如果将十进制值转换为字符串返回逗号而不是点,您认为会发生什么情况?