mysql_real_escape_string и array_map возвращает пустые строки?

Я еще не научился использовать параметризованные запросы (которые по некоторым другим сообщениям на этом сайте – это то, что я обязательно должен сделать первым делом завтра утром), и я хочу получить удар данных формы в запрос, сбежал.

Дважды я столкнулся с этим решением:

$_POST = array_map('mysqli_real_escape_string', $_POST); 

Это, как я могу сказать, запускает все переменные в массиве $ _POST через функцию escape. Я видел, что точная строка поддерживается, но когда я добавляю ее к существующему PHP, она создает пустую строку.

У меня создалось впечатление, что mysqli_real_escape_string нужен второй параметр – ссылка / соединение. Это то, что вызывает мою проблему? Данные берутся в базе данных только в том случае, если эта строка удалена, а мои переменные берут их неизменяемые значения из $ _POST.

    array_map возвращает новый массив, если вы перезаписываете $_POST , лучшим решением будет использование array_walk .

     array_walk($_POST, function(&$string) use ($link) { $string = mysqli_real_escape_string($link, $string); }); 

    Обратите внимание, что $link должно быть действительным соединением.

     Function [ <internal:mysqli> function mysqli_real_escape_string ] { - Parameters [2] { Parameter #0 [ <required> $link ] Parameter #1 [ <required> $string_to_escape ] } } 

    Вы должны передать значения, спрятанные в другую переменную:

     $post = array_map('mysqli_real_escape_string', $_POST); 

    Или:

     foreach($_POST as $k => $v) { $_POST[$k] = mysqli_real_escape_string($v); } 

    Примечание. Если массив не указан, foreach работает с копией указанного массива, а не с самим массивом.

    Тогда да, это ваш ответ:

    mysql_real_escape_string() требует подключения к базе данных, так как использует набор символов базы данных для определения того, что необходимо для экранирования.
    Без этого PHP не имеет представления о том, какой набор символов вы используете, и о том, как сбежать.

    Здесь очень много:
    http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
    И все с разными символами.