php - 从 textarea 提交时 - mysql 错误

标签 php mysql

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

所以...当我在文本区域中写一个词“don't”或“doesn't”时,“'”会中断 MySQL 查询,并且我会收到有关 MySQL 语法的错误消息。有没有办法解决这个问题并允许将“'”保存在数据库中?

编辑页面的代码如下所示

<textarea rows="12" cols="50" height="200px" name="text" >
   <?php echo $row['text'];?>
</textarea>

并查询

$sql="UPDATE works SET client='".$_POST["client"]."', description='".$_POST["description"]."', text='".$_POST["text"]."', image='".$_FILES["attels"]["name"]."' WHERE id=".$_GET['id']."";

还有,有没有办法删除<p>来自 The textarea 的标签,因为 tinymce 会自动将这些

设置在每个段落的前面。但我不需要它们。

最佳答案

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

$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 注入(inject)。

关于php - 从 textarea 提交时 - mysql 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3835488/

相关文章:

php - MySQL 规模问题 - 触发器/更新/监控表

php - 打开动态文件(fopen)

javascript - 如何禁用浏览器功能和快捷键进行全屏在线考试?

php - 如何在匹配之前用正则表达式替换 mySQL 列?

javascript - PHP-JavaScript 多按钮添加新文本字段

php - 原则 - 在两个日期之间获得销售

MySql - 仅按特定值的列分组(不带 UNION)

php - mysql 查询在循环内不起作用

javascript - Node.js API 与 express 和 mysql - 仅在设置、等于和类似组合时应用搜索参数

php - Mysqli::real_connect() 每 24 小时断开一次管道