我在一个工具中使用以下插入语句,将数据从一个数据库拉到另一个数据库。
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服务器版本对应的手册,以便在'\ nSynopsis附近使用正确的语法:\ n \ n可以从第3行的远程Web服务检索文件备份
我试图从其中一个列中提取的数据中有很多单引号和双引号(这是从专有工具中提取的,我无法编辑数据)。给我问题的专栏是名为pluginText的专栏。有没有办法让db忽略行中包含的'和'?
mysql_real_escape_string我需要做些什么呢?
答案 0 :(得分:4)
更新:使用QUOTE()
function执行此操作。
原始答案:
请试试这个:
INSERT INTO
...
VALUES (
...
, REPLACE(@Data.pluginText, '"', '\"')
)
或者如果你有单个和双引号:
INSERT INTO
...
VALUES (
...
, REPLACE(REPLACE(@Data.pluginText, '"', '\"'), "'", "\'")
)
您可以阅读更多相关信息here
答案 1 :(得分:3)
我们需要使用addslashes($text)
函数来转义所有单引号和双引号,NULL等,以使MYSQL可以理解。
Here is some information on that.