mysql怎么样才能插入单引号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql怎么样才能插入单引号相关的知识,希望对你有一定的参考价值。

参考技术A 您好,我来为您解答: 试试使用两个单引号表示一个单引号 如果要输入'你好',用insert into a(ch) values("'你好'"); 如果要输入"你好",用insert into a(ch) values('"你好"') ; 如果我的回答没能帮助您,请继续追问。追问

我是通过表单输入数据的,比我我输入 你好' 出错了,输入 你好\' 就可以插入了。

在 MySQL 表中同时插入和更新转义字符、单引号和双引号

【中文标题】在 MySQL 表中同时插入和更新转义字符、单引号和双引号【英文标题】:insert and update escape charcter, simple and double quotes in the same time in a MySQL table 【发布时间】:2012-12-11 01:13:50 【问题描述】:

我担心在 MySQl 表 w 中插入文本。 我必须插入/更新包含 / " 和 ' 等字符的文本

只有在启用 NO_BACKSLASH_ESCAPES SQL 模式时才能插入转义字符 /。干扰字符 " 和 ' 请参阅此链接 http://dev.mysql.com/doc/refman/5.1/en/string-literals.html#character-escape-sequences

如果有人能解释一下 mysql_real_escape_string() 我不会低调

我想找一个纯mysql的解决方案 我没有使用 php。我在这里要做的是“模拟”内容管理系统:我即将编写一个 C# 编码的解决方案来管理不同形式的内容(文章、类别、标签等)并生成 .html 文件, MySQl 数据库在我的计算机中是本地的,接下来我会将 .html 文件上传到服务器。

我这样做是为了确保我所有的 html 页面都是 html 有效的,并且因为我不信任任何现有的解决方案(不仅涉及编码,而且在一般生活中)

请帮忙

【问题讨论】:

【参考方案1】:

每个 php db 连接扩展(mysql, mysqli, pdo)都有一个特殊的方法来安全查询sql注入,当你使用mysql扩展时,强烈建议使用mysql_real_escape_string()函数使查询中使用的所有变量安全,它是使用最广泛的功能。我认为没有任何纯粹的解决方案(当您在 php 中使用 mysql 扩展时)。 来自 php.net:

mysql_real_escape_string() - 转义特殊字符 unescaped_string,考虑到当前字符集 连接,以便将其放置在 mysql_query() 中是安全的。

【讨论】:

mysql_real_escape_string() 与注入无关。它不会使任何字符“安全”。它不应该用于“所有变量”。它不是“强烈推荐”,因为它只是一个字符串格式化工具:所以,它不是“推荐”但应该用于格式化字符串,但不应该用于其他任何东西 那么告诉我在使用 mysql 扩展时如何制作安全的变量?还有其他方法吗?? 我没有使用 php。我在这里要做的是“模拟”内容管理系统:我即将编写一个 C# 编码的解决方案来管理不同形式的内容(文章、类别、标签等)并生成 .html 文件, MySQl 数据库在我的计算机中是本地的,接下来我会将 .html 文件上传到服务器。我这样做是为了确保我所有的 html 页面都是 html 有效的,因为我不相信任何现有的解决方案(不仅涉及编码,而且在一般生活中)【参考方案2】:

任何字符串数据都可以插入到 SQL 查询中,如果按照 2 条规则格式化

用引号括起来(最好是单引号) 通过mysql_real_escape_string()传递

如果两个规则都遵循,那么无论是斜线、引号还是任何字符,都不会出现任何问题。

根据您的问题,/ 在 MySQL 中没有特殊含义。 \ 是转义字符。它也可以被另一个反斜杠转义。

$str = 'slashes \ quotes \' or whatever " else symbols';
var_dump($str);
$str = mysql_real_escape_string($str);
$sql = "INSERT INTO table SET str='$str'";

【讨论】:

是的,我很抱歉转义字符是 \ 而不是 /,谢谢 能否请您更具体地了解如何实施您的解决方案,因为我不是 mysql 专家。请注意,我使用的不是 php 或类似的解决方案,只是 MySQL 。谢谢

以上是关于mysql怎么样才能插入单引号的主要内容,如果未能解决你的问题,请参考以下文章

mysql导出的SQL怎么都带双引号

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

在 MySQL 表中同时插入和更新转义字符、单引号和双引号

sql语句插入的数据中含有单引号怎么办?

如何用sql语句插入一个带有单引号的值

客户数据中存在单引号,如何插入SQL SERVER