gpt4 book ai didi

php - 超出内存大小?

转载 作者:搜寻专家 更新时间:2023-10-31 21:46:36 24 4
gpt4 key购买 nike

我有一个将数据提交到数据库的表单,我有一个如下所示的函数:

//connect 
foreach ($_POST as $key => $value) {
$_POST[$key] = mysql_real_escape_string($value);
}

现在当我发帖时,有时我会收到这样的错误:

Allowed memory size of 268435456 bytes exhausted

我发现当我进行换行或在消息字段中按回车键时,就会导致错误,否则它会正常工作。有什么想法吗?

最佳答案

请尝试重现错误

$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 的方式有两个原因:

  • 如果可能,不要改变 _POST,不要改变它的值。 (不过我会破例撤消 magic_quotes ;-))
  • 只处理您知道自己需要的那些字段。不要编写“编码并将 _POST 中的所有内容存储在数据库中”函数,尽管这听起来像是一个好主意和 super 可重用的代码。如果你想让它在某种程度上可重用,请将一个带有描述的数组传递给函数。在该数组中,您可以例如存储信息,如[表单字段名称、允许的数据类型/验证规则、数据库字段名称]

关于php - 超出内存大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com