首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从文本区域提交时- mysql错误

问从文本区域提交时- mysql错误
EN

Stack Overflow用户
提问于 2010-10-01 07:21:42
回答 2查看 566关注 0票数 1

我在我的新网站上用英语使用TinyMCE,这是我自己做的(我就像一个星期天的程序员:)。就像以前我用我的母语做站点一样,我没有遇到这个问题:

所以..。当我在文本区中输入“不”或“不”这个词时,“‘”会破坏MySQL查询,并且我得到一个关于MySQL语法的错误。有没有办法绕过这个问题,让“‘”保存在数据库中?

编辑页面的代码如下所示

代码语言:javascript
复制
<textarea rows="12" cols="50" height="200px" name="text" >
   <?php echo $row['text'];?>
</textarea>

And查询

代码语言:javascript
复制
$sql="UPDATE works SET client='".$_POST["client"]."', description='".$_POST["description"]."', text='".$_POST["text"]."', image='".$_FILES["attels"]["name"]."' WHERE id=".$_GET['id']."";

另外,有没有一种方法可以从文本区中删除<p>标记,因为tinymce会自动设置这些标记

在每一段前面。但我不需要他们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-01 07:27:59

可以使用mysql_real_escape_string()函数清除要插入到数据库中的文本。这会在可能导致问题的字符前面添加反斜杠,例如单引号。

代码语言:javascript
复制
$sql="UPDATE works SET client='".mysql_real_escape_string($_POST["client"])."', description='".mysql_real_escape_string($_POST["description"])."', text='".mysql_real_escape_string($_POST["text"])."', image='".mysql_real_escape_string($_FILES["attels"]["name"])."' WHERE id=".sprintf("%d", $_GET['id'])."";

理想情况下,您还应该使用sprintf()来防止SQL注入。

票数 1
EN

Stack Overflow用户

发布于 2010-10-01 07:27:29

您需要使用

代码语言:javascript
复制
 mysql_escape_string

清除POST变量以便在MySQL查询中使用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3835488

复制
相关文章

相似问题

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