Security Warning: этот ответ не соответствует лучшим рекомендациям по безопасности. Эвакуация неадекватна для предотвращения SQL-инъекции , вместо этого используйте подготовленные операторы . Используйте стратегию, изложенную ниже, на свой страх и риск. (Кроме того,
mysql_real_escape_string()
был удален в PHP 7.)Вы могли бы сделать что-то основное:
$safe_variable = mysql_real_escape_string($_POST["user-input"]); mysql_query("INSERT INTO table (column) VALUES ('" . $safe_variable . "')");
Это не решит каждую проблему, но это очень хороший ступень. Я оставил очевидные элементы, такие как проверка существования переменной, числа (числа, буквы и т. Д.).
Я думаю, что в большинстве случаев это немного быстрее, чем Форач, но это действительно не имеет смысла. Одна вещь, о которой я не упомянул, в сценарии, о котором вы говорите (т.е. веб-приложение большого объема), разница в производительности между for и foreach не будет иметь никакого отношения к производительности сайта. Вы будете ограничены временем запроса/ответа и временем БД, а не для v. foreach.
Тем не менее, я не понимаю вашего отвращения к foreach. На мой взгляд, Форач обычно более понятен в ситуации, когда можно использовать и то, и другое. Обычно я резервирую для ситуаций, когда мне нужно пересечь коллекцию каким-то уродливым, нестандартным способом
.