向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数据库插入单引号或双引号的主要内容,如果未能解决你的问题,请参考以下文章