首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql + php,具有'(Apostrophe)和“(引号)等特殊字符

Mysql + php,具有'(Apostrophe)和“(引号)等特殊字符
EN

Stack Overflow用户
提问于 2011-01-11 16:23:59
回答 7查看 97.5K关注 0票数 11

我为一个小问题挣扎了一段时间。它已经存在多年了,但它只是一个恼人的问题,而不是一个严重的问题,我只是努力解决这个问题。但现在我想知道是否有人能帮我。我已经做了一些谷歌,但没有成功。

如果我在php文件中从html textarea中做表单发布,如下所示:

代码语言:javascript
运行
复制
<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>文本区域的值有“(引号)和'(Apostrophe)。

为了将其保存在mysql_database中,我执行以下操作:

代码语言:javascript
运行
复制
$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".$_POST['text']."') ") or die(mysql_error());

现在我得到mysql错误:

您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得在第1行使用near‘'s site’的正确语法。

EN

回答 7

Stack Overflow用户

发布于 2011-01-11 16:27:49

在向数据库中添加用户提供的值时,至少要始终使用mysql_real_escape_string。您应该查看绑定参数或mysqli,以便您的查询变成:

代码语言:javascript
运行
复制
INSERT INTO `table` (`row1`) VALUES (?)

然后呢?将被清除输入后的实际值替换。

在您的案例中使用:

代码语言:javascript
运行
复制
$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".mysql_real_escape_string($_POST['text'])."') ") or die(mysql_error());

阅读SQL注入。值得尽快做正确的事!

票数 10
EN

Stack Overflow用户

发布于 2011-01-11 16:26:19

Stack Overflow用户

发布于 2012-09-26 05:24:14

可以使用加号()函数。它引用带有斜线的字符串。所以,当你在你的领域中添加任何撇号时,它将对你非常有用。

代码语言:javascript
运行
复制
$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".addslashes($_POST['text'])."') ") or die(mysql_error());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4659879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档