的约mysql_real_escpae_string
问题描述:
有趣的问题,我对编辑工作的网站内容简单的形式: - 为标题 文本输入 - 对内容的文本区域的约mysql_real_escpae_string
当添加内容,是没有问题的,allthings添加正常:
$chead = mysql_real_escape_string(stripslashes($_POST['chead']));
$ctext = mysql_real_escape_string(stripslashes($_POST['ctext']));
但edittig是containig的
$chead = 'sdsfsf' "sdgsdgs"ggdsfsdg
的$ chead = 'sdsfsf'文章时和"sdgsdgs"ggdsfsdg
将会丢失! mysql_real_escpae_string
有什么问题? 谢谢
答
你需要追踪信息在哪里丢失,这可能不是mysql_real_escape_string
。
检查生成的$chead
值(在您指控某个特定功能已损坏您的数据之前,请确保它是这样)。然后检查你正在生成的SQL命令并确保它正在工作。插入/更新记录和请求文章时从数据库返回的值后检查数据库。
根据我的经验,在数据库交互过程中出现程序员错误的可能性要大得多,或者造成比PHP更麻烦的HTML生成。如果你真的把问题追踪到mysql_real_escape_string
,你可能需要重新安装PHP和MySQL。
+0
我已经解决了这个问题,在打印输入时添加htmlspecialchars。但我不明白为什么会出现这个问题。 – TheNone 2010-06-17 15:06:19
对不起,我不明白。你能解释一下吗? – Gumbo 2010-06-16 20:37:21
最有可能的一个HTML问题,你检查页面的_source_(不是浏览器中的实际输出。)除非你的PHP安装被严重破坏,否则mysql_real_escape_string()没有问题(用这个..),我非常怀疑。 – Wrikken 2010-06-16 20:39:49
ofcourse: 当我添加文章时,文章标题()是'sdsfsf'“sdgsdgs”ggdsfsdg。当我编辑这个时,它变成'sdsfsf'和'sdgsdgs'ggdsfsdg是丢失了。 @Wrikken,我检查了html,“sdgsdgs”ggdsfsdg丢失:( –
TheNone
2010-06-16 20:41:14