我有一个将数据提交到数据库的表单,我有一个如下所示的函数:
//connect
foreach ($_POST as $key => $value) {
$_POST[$key] = mysql_real_escape_string($value);
}
现在当我发帖时,有时我收到一个错误,上面写着:
允许的内存大小为268435456字节耗尽
我发现当我做一个换行符,或者在消息字段中按Enter键时,那就是它导致错误,否则它正常工作。任何想法?
答案 0 :(得分:1)
请尝试使用
重现错误$mysql = mysql_connect(...
printf("<pre>Debug: count(_POST)==%d</pre>", count($_POST));
foreach ($_POST as $key => &$value) {
printf("<pre>Debug: strlen(_POST[%s])==%d</pre>", htmlspecialchars($key), strlen($value)); flush();
$value = mysql_real_escape_string($value, $mysql);
}
printf("<pre>Debug: Done.</pre>");
在“允许的内存大小为268435456字节耗尽”消息之前,是否会打印“异常”的内容?
编辑和顺便说一句:我不喜欢你试图处理real_escape_string的方式有两个原因: