Пожалуйста, попробуйте воспроизвести ошибку с
<code>$mysql = mysql_connect(...
printf("<pre>Debug: count(_POST)==%d
", count ($ _ POST));
foreach ($ _POST как $ key => & $ value) {
printf ("
Debug: strlen(_POST[%s])==%d
", htmlspecialchars ($ key), strlen ($ value)); промывать();
$ value = mysql_real_escape_string ($ value, $ mysql);
}
Е ( "
Debug: Done.
");
Выводит ли это что-то «необычное» перед сообщением «Разрешенный объем памяти 268435456 байт исчерпан»?
edit and btw: мне не «нравится» то, как вы пытаетесь обработать real_escape_string по двум причинам:
- Если возможно, оставьте _POST в покое, не меняйте его значения. (Я бы сделал исключение для удаления magic_quotes ;-))
- Обрабатывайте только те поля, которые, как вы знаете, вам понадобятся. Не пишите функцию «кодировать и хранить в базе данных все, что есть в _POST», хотя это может звучать как хорошая идея и супер-многократно используемый код. Если вы хотите сохранить его несколько разным, передайте массив с описаниями функции. В этом массиве вы можете, например, хранить информацию, такую как [имя поля формы, допустимый тип данных / правила проверки, имя поля базы данных]