Допустим, хочу перед запросом вызвать для каждой переменной (которая там участвует) функцию mysql_real_escape_string. Но отдельно для каждой писать - влом)
Хочется так:
SequreQuery($login, $name, $city);
Т.е. передал в функцию, она для каждого поля вызвала, и они реально изменились здесь.
Пробую:
function SecureQuery()
{
$args = func_get_args();
foreach ($args as $var)
{
$var = mysql_real_escape_string($var);
}
}
Вызывается, но исходные переменные не меняются. Можно, конечно, покопать в сторону array_walk, но там-то просто вызов функции, а надо результат сохранить.. Как подправить синтаксис? Вместо $ &$ ?
Спустя 6 минут, 41 секунда (11.05.2011 - 21:09) quickxyan написал(а):
должно меняться только последнее значение
ты тут переписываешь одну и ту же переменную. пробуй сделать так
$var = mysql_real_escape_string($var);
ты тут переписываешь одну и ту же переменную. пробуй сделать так
$var1[] = mysql_real_escape_string($var);
return $var1;
Спустя 33 минуты, 52 секунды (11.05.2011 - 21:43) Гость_Диман написал(а):
Дык тут return не поможет)
Надо чтобы срабатывало для каждого аргмента. Ну и вроде как я переписываю не одну и ту же переменную: $var это очередной элмент массива аргументов, который надо обработать посредством mysql_real_escape_string(
- после вызова, var1 и var2 должны измениться. Но не меняются.
Надо чтобы срабатывало для каждого аргмента. Ну и вроде как я переписываю не одну и ту же переменную: $var это очередной элмент массива аргументов, который надо обработать посредством mysql_real_escape_string(
function SecureQuery()
{
$args = func_get_args();
foreach ($args as $var)
{
$var = mysql_real_escape_string($var);
}
}
...
$var1 = '....';
$var2 = '....';
SecureQuery($var1, $var2);
- после вызова, var1 и var2 должны измениться. Но не меняются.
Спустя 9 часов, 10 минут, 30 секунд (12.05.2011 - 06:53) Гость_Диман написал(а):
А как применить ссылки?
Спустя 53 минуты, 26 секунд (12.05.2011 - 07:47) Mirexzpalich написал(а):
Для пхп 5.х так
Для пхп 4.х так
function SecureQuery()
{
$args = func_get_args();
foreach ($args as &$var)
{
$var = mysql_real_escape_string($var);
}
}
//Вызов функции
SecureQuery(&$var1, &$var2);
Для пхп 4.х так
function SecureQuery()
{
$args = func_get_args();
$vars = array();
foreach ($args as $key=>$var)
{
$vars[] = mysql_real_escape_string($var);
}
$agrs = $vars;
}
//Вызов функции
SecureQuery(&$var1, &$var2);
Спустя 1 час, 44 минуты, 28 секунд (12.05.2011 - 09:31) Гость_Диман написал(а):
ух-ты, спасибо)