Я хочу реализовать функцию быстрого доступа для замены обычно используемого mysqli_real_escape_string()
следующим образом в отдельном скрипте , который будет включен в мой основной скрипт:
$cxn = mysqli_connect($hostname, $username, $password, $databasename)
or die ("Couldn't connect to server.");
function m($str) {return "'".mysqli_real_escape_string($cxn, $str)."'";}
Основной сценарий содержит foreach
, который будет циклически проходить через массив следующим образом:
foreach($ARRAY as $field => $value)
{
$fields[] = $field;
$value = strip_tags(trim($value));
$values[] = m($value); // function m() is implemented here
}
После проверки оператора SQL я обнаружил, что все вставленные значения пусты.Я знаю, что если нет открытого соединения, mysqli_real_escape_string()
вернет пустую строку, так что это может быть проблемой.Однако, если бы я заменил следующую строку
$values[] = m($value);
на эту,
$values[] = "'".mysqli_real_escape_string($cxn, $value)."'";
, все правильные значения будут возвращены.Итак, что может быть причиной сбоя функции быстрого доступа m()
?