- Проблем с mysql_real_escape_string() функция
WT форуми -> PHP MySQL ASP.NET -> Проблем с mysql_real_escape_string() функция
Създайте нова тема Напишете отговор 
Автор Съобщение
xlebabarov
Нов
Нов

Регистриран на: 10/11/2009 8:24 am

Support: 5
Bonus: 10
Мнения: 169
Мнение 22/08/2018 11:48 am     Проблем с mysql_real_escape_string() функция Отговорете с цитат


Здравейте, мъчи ме тука една магия.

function mysql_escape($array = array()){
   for($i=0;$i<=count($array)-1;$i++){
      echo($array[$i].'<br>');
      
   }

}


Ми изкарва всичките стойности на $array:
admin
asddsa
33
1
1
988772699
0988772699


но когато се опитам да направя следното:

function mysql_escape($array = array()){
   $new = array();
   for($i=0;$i<=count($array)-1;$i++){
      echo($array[$i].'<br>');
      array_push($new, mysql_real_escape_string($array[$i]));
   }
        return $new;
}


Ми изкарва само:
admin


а съм задал
   mysql_escape(array($_POST['username'], $_POST['password'], $_POST['country'], $_POST['gender'], $_POST['language'], $_POST['phone_code'], $_POST['phone_num']));


Според вас на какво се дължи?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 83
Bonus: 178
Мнения: 1741
Мнение 22/08/2018 1:04 pm      Отговорете с цитат


Нещо не разбрах какво те мъчи. Първо mysql_real_escape_string е depricated така че не е добре да се ползва. С array_push() си вкарваш стойностите в новия масив. Кое по точно не ти работи? Ако обходиш масива $new ще ти изведе всички стойности.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
pix3l
Нов
Нов

Регистриран на: 08/10/2016 4:31 pm

Support: 6
Bonus: 12
Мнения: 139
Мнение 22/08/2018 5:51 pm      Отговорете с цитат


От PHP 7 нататък mysql_real_escape_string няма. Вероятно не си включил error report и не виждаш грешката, която ти хвърля.

Във втория код ти изкарва един резултат, после хвърля грешка, че real escape не съществува и приключва.

Между другото, няма смисъл да правиш нов масив, за да променяш този, който ти идва като параметър, понеже в PHP той не идва като референция към оригиналния.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
raiden
Активен
Активен

Регистриран на: 08/12/2006 10:13 am

Support: 189
Bonus: 464
Мнения: 2181
Мнение 22/08/2018 7:52 pm      Отговорете с цитат


PHP code:
$new = array_map(
'mysql_real_escape_string',
array($_POST['username'], $_POST['password'], $_POST['country'], $_POST['gender'], $_POST['language'], $_POST['phone_code'], $_POST['phone_num'])
);

Question
Или array_walk, array_reduce, няма нужда от цикъл.
Иначе както ти казаха - използвай mysqli екстеншъна, mysql вече няма в php7. Там имаш mysqli_real_escape_string() / $mysqli->escape_string()
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети