2012-05-21 194 views
-1

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

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在此扫描运行时。\ n \ nCVE:CVE-2011-1000,第3行

然而数据看起来是这样的:

彻底测试” \ n当此运行扫描没有启用\ n \ NCVE:CVE-1011至00年

有没有人有一个想法,为什么双引号中的一个是换成单引号并抛出这个错误?

+0

请显示您的代码。 –

+0

查询结果是 – Ben

回答

0

它应该没关系。问题是你的数据应该用斜杠('\')转义所有引号。这样,您只需在将结果返回到代码时取消数据。

+0

我无法控制数据,它来自外部工具。我只是试图把它插入到一个新的数据库中 – Ben

+0

你是什么意思,无法控制,你不能在插入之前清理数据吗? – edocetirwi

+0

我不知道如何连接网络扫描工具的后端数据库,并试图将扫描结果插入到我设置用于处理数据的MySQL数据库中。 – Ben