MySQL插入包含单引号和双引号的数据给出语法错误

标签 mysql insert quotes

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

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 是我正确执行此操作所需要的吗?

最佳答案

更新:用 QUOTE() function 做.

原始答案:

请试试这个:

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

或者如果你有单 双引号:

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

您可以阅读更多相关信息 here

关于MySQL插入包含单引号和双引号的数据给出语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10500880/

相关文章:

正则表达式匹配所有 unicode 引号

mysql - 对于大量列,MyISAM 类型表会比 InnoDB 更好吗?

php - Codeigniter:我想在我的用户创建用户名时为他们创建用户 URL

mysql - 是否可以在公共(public) mysql 数据库上向某些用户提供某些数据?

linux - Sed错误:sed:-e表达式#1,字符12:`s'的未知选项

php - 将 PHP 代码写入文件

mysql - 基于列值的连接类型

python - 在给定索引列表的情况下将多行插入数据帧的最快方法(python)

php - 在 PHP MYSQL 中循环将累积数据从一个表插入到新表

mysql - 何时在 MySQL 中使用单引号、双引号和反引号