我在我的新网站上使用TinyMCE英语,我自己做(我就像一个星期天的程序员:))。和以前一样,我用我的母语做网站时,我没有遇到这个问题:
所以...当我在textarea中写一个单词“do not”或“not not”时,“'”打破了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']."";
另外,有没有办法从the textarea中删除<p>
标签,因为tinymce会自动在每个段落前设置这些
。但我不需要它们。
答案 0 :(得分:1)
你需要使用
mysql_escape_string
清理POST变量以在MySQL查询中使用
答案 1 :(得分:1)
您可以使用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注入。