我在我的新英语网站上使用 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/