当前位置: 首页 > 面试题库 >

Mysql + php,带有特殊字符,例如'(撇号)和“(引号)

许学真
2023-03-14
问题内容

我一直在努力解决一个小问题。它已经存在了很多年,但这只是一个令人烦恼的问题,而不是一个严重的问题,我已经解决了这个问题。但是现在我想找出是否有人可以帮助我。我做了一些谷歌搜索,但没有成功。

如果我从php文件中的html textarea进行表单发布,如下所示:

<form action="http://action.com" method="post">
<textarea name="text"><a href="http://google.com">google's site</a></textarea>
</form>

当然还有一个提交按钮,依此类推。

值是问题所在:<a href="http://google.com">google's site</a>textarea的值同时具有“(引号)和’(撇号)。

要将其保存在mysql_database中,请执行以下操作:

$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".$_POST['text']."') ") or die(mysql_error());

现在我得到了mysql错误:

您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取在第1行的“站点附近”使用的正确语法


问题答案:

您的sql字符串将为:

INSERT INTO `table` (`row1`) VALUES ('google's site')

这不是有效的声明。正如Nanne所写,请至少使用mysql_real_escape_string对该字符串进行转义:http ://php.net/manual/en/function.mysql-real-escape-
string.php

并阅读有关sql注入的信息
http://en.wikipedia.org/wiki/SQL_injection

想一想:如果有人发布了这个:$_POST['text']值:');delete from table;....

您可以对数据说再见:)

始终过滤/转义输入!

编辑:从PHP 5.5.0起,不推荐使用mysql_real_escape_string和mysql扩展名。 请改用mysqli扩展名和mysqli
:: escape_string函数



 类似资料:
  • 问题内容: 我正在将某些Web“服务”从WCF Rest转换为MVC3。 我们的旧网络服务使用以下命令从POCO返回JSON就好了: 在我的控制器中返回一个简单的poco,我使用JsonResult作为返回类型,并使用创建json 。 在WCF Rest服务中,撇号和特殊字符在呈现给客户端时会被格式化。 在MVC3控制器中,撇号显示为\ u0027。 有什么想法吗?我是序列化JSON的新手,因此任

  • 问题内容: 我在数据库中有包含特殊字符的单词(大多数情况下为西班牙语,如波浪号)。在数据库中,所有内容均已保存并使用PHPmyAdmin正确显示,但是当我获取数据(使用PHP)并将其显示在浏览器中时,我得到了一个奇怪的字符,例如“?”。用一个正方形…我需要一个一般性的修补程序,因此我不必每次都转义每个字符,而且我还可以将PHP表单中的特殊西班牙字符插入数据库中… HTML是正确的: 所有表和数据库

  • 本文向大家介绍xml 撇号和引号,包括了xml 撇号和引号的使用技巧和注意事项,需要的朋友参考一下 示例 属性值可以用单引号或双引号出现。适当的字符必须转义。            

  • 问题内容: 我遇到了一个大问题,即通过jQuery Ajax将数据作为JSON发布到我的服务器。JSLint表示数据正常,并且请求的Content- Type设置为。服务器在PHP 5.2.11上运行,所以我不能使用。 我尝试了url_decode,utf8_decode和html_entities_decode,但似乎没有任何效果。 返回null,但如果执行此操作,一切正常。是发布数据:。 这是

  • 我想使用platformRequest拨打以下格式的号码: 但我得到了一个无效的数字错误,有可能吗?

  • 问题内容: 我该如何更换: “ã”和“ a” “é”和“ e” 在PHP中?这可能吗?我读过某处我可以使用基本字符的ascii值和重音符号的ascii值进行一些数学运算,但是现在找不到任何参考。 问题答案: 这个答案是不正确的。 编写它时,我不理解Unicode规范化。查看francadaval的评论和链接 签出Normalizer类来执行此操作。文档很好,所以我将其链接起来,而不是在这里重复: