У меня есть проблема структуры с реализацией параметров для mysqli_real_escape_string. Место, в котором я использую, находится внутри такой функции:
/**
* Clean the array using mysql_real_escape_string
*
* Cleans an array by array mapping mysql_real_escape_string
* onto every item in the array.
*
* @param array $array The array to be cleaned
* @return array $array The cleaned array
*/
function clean($array)
{
return array_map('mysqli_real_escape_string', $array);
}
Я получаю двойное предупреждение об этом:
Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 указан в C: \ vhosts \ goodgirls1 \ core \ database \ db.php в строке 59
Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 указан в C: \ vhosts \ goodgirls1 \ core \ database \ db.php в строке 59
Итак, я попробовал это вместо этого, чтобы увидеть, смогу ли я удовлетворить ошибку:
function clean($array) {
return array_map(mysqli_real_escape_string(mysqli_connect('localhost', DB_USER, DB_PASS)), $array);
}
Вроде бы это удовлетворило, но теперь я получаю это предупреждение:
Предупреждение: mysqli_real_escape_string () ожидает ровно 2 параметра, 1 указан в C: \ vhosts \ goodgirls1 \ core \ database \ db.php в строке 59
И вот где я сейчас потерян. Что я даю mysqli_real_escape_string
сделать это счастливым? Если я укажу неверный отсутствующий параметр, мой массив, похоже, взорвется. Буду признателен за несколько советов о том, как действовать отсюда. Спасибо!
function clean($array) {
$connection = mysqli_connect('localhost', DB_USER, DB_PASS);
return array_map(
function($value) use ($connection) {
return mysqli_real_escape_string($connection, $value);
},
$array
);
}
Но (поскольку вы уже используете MySQLi) рассмотрите возможность использования подготовленных операторов / переменных связывания
Других решений пока нет …