5

我在将数据从一个数据库拉入另一个数据库的工具中使用以下插入语句。

INSERT INTO act_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~",   
 @Data.pluginText~)

错误信息:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 '\nSynopsis :\n\nIt is possible to retrieve file backups from the remote web serv' 附近使用正确的语法

我试图从其中一列中提取的数据中有很多单引号和双引号(这是从专有工具中提取的,我无法编辑数据)。给我问题的专栏是名为 pluginText 的专栏。有没有办法让数据库忽略行中包含的 ' 和 " ?

mysql_real_escape_string 我需要正确执行此操作吗?

4

2 回答 2

5

更新:用QUOTE()函数来做

原答案:

请试试这个:

INSERT INTO 
...
VALUES (
...
, REPLACE(@Data.pluginText, '"', '\"')
)

或者如果你有单引号双引号:

INSERT INTO 
...
VALUES (
...
, REPLACE(REPLACE(@Data.pluginText, '"', '\"'), "'", "\'")
)

你可以在这里阅读更多关于它的信息

于 2012-05-08T15:21:19.810 回答
5

我们需要使用该addslashes($text)函数将所有的单引号和双引号、NULL等转义,以使MYSQL可以理解。 这里有一些关于这方面的信息。

于 2016-04-21T20:31:10.773 回答