-1

我正在尝试将数据插入包含大量单引号和双引号的表中。

INSERT INTO vulnerabilities_internal_test (device_type, ip_address, user_tag, 
repositoryID, severity, pluginID, pluginName, pluginText)

VALUES ("@Data.device_type~", "@Data.ip_address~", "@Data.user_tag~", 
"@Data.repositoryID~", "@Data.severity~", "@Data.pluginID~", "@Data.pluginName~", 
replace(replace("@Data.pluginText~", ',', ''), '"', '' ))

我收到以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在运行此扫描时未启用“彻底测试”附近使用的正确语法。\n\nCVE : CVE-2011-1000,第 3 行

但是数据看起来像这样:

运行此扫描时未启用“全面测试”。\n\nCVE : CVE-2011-1000

有谁知道为什么将其中一个双引号替换为单引号并引发此错误?

4

1 回答 1

0

应该没关系。问题是您的数据应该使用斜杠 ('\') 转义所有引号。这样,您只需要在将结果返回到代码时对数据进行转义即可。

于 2012-05-21T17:36:41.410 回答