向MySQL数据库插入单引号或双引号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向MySQL数据库插入单引号或双引号相关的知识,希望对你有一定的参考价值。

当向mysql数据库插入一个含有单引号或双引号的数据时出错。求解。
例如,我要插入的数据为:
insert into mytable(text) values('I'm Sail!');
出错。
求解决方法,最好有注释,谢谢,本人懂的SQL语句不多

--mysql值中需要单引号使用“\\'”

insert into mytable(text) values('I\\'m Sail!');

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 php 和 Apache 可组成良好的开发环境。

参考技术A --mysql值中需要单引号使用“\\'”
insert into mytable(text) values('I\\'m Sail!');

参考技术B 单引号要转义:
insert into mytable(text) values('I\'m Sail!');本回答被提问者采纳
参考技术C insert into mytable (text) values("I'm Sail!");
"I'm Sail!"应该用双引号追问

不解释,你自己用MySQL试试就知道

参考技术D 用转义字符!

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

【中文标题】MySQL插入包含单引号和双引号的数据,给出语法错误【英文标题】:MySQL insert data containing single and double quotes giving a syntax error 【发布时间】:2012-05-17 01:41:36 【问题描述】:

我在将数据从一个 DB 提取到另一个 DB 的工具中使用以下插入语句。

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 才能正确执行此操作吗?

【问题讨论】:

【参考方案1】:

更新:使用QUOTE() function。

原答案:

请试试这个:

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

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

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

你可以阅读更多关于它here

【讨论】:

我都试过了,收到了类似的错误:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在运行此扫描时未启用“彻底测试”附近使用的正确语法。\n\nCVE : CVE-99,第 3 行我是否还需要删除. \ - 和 : 符号? @user1208132 你能给我造成问题的文本,以便我可以测试一下吗? 这里是它的格式,必须保留:运行此扫描时\n未启用“全面测试”。\n\nCVE:CVE-2012-2100, 有人对此有意见吗? @user1208132 抱歉,我忘记了这个问题。编辑了我的答案,现在只有一个反斜杠。不知道我是怎么把其中两个混在一起的。现在它应该可以工作了。还添加了一个链接,您可以在其中找到更多信息。【参考方案2】:

我们需要使用addslashes($text)函数来转义所有的单引号和双引号,NULL等,让MYSQL可以理解。 Here is some information on that.

【讨论】:

以上是关于向MySQL数据库插入单引号或双引号的主要内容,如果未能解决你的问题,请参考以下文章

用其他东西替换或删除新行,但只能在 CSV 文件上使用 PHP 的单引号或双引号之间

[急急急]mysql不允许插入'(单引号)??

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

mysql怎么样才能插入单引号

PHP输出单引号和双引号作为输入元素的值

如何使用单引号将查询插入mysql