Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по mysqli_real_escape_string()
Форумы портала PHP.SU » » Вопросы новичков » Вопрос по mysqli_real_escape_string()

Страниц (1): [1]
 

1. nj31 - 09 Февраля, 2020 - 15:35:37 - перейти к сообщению
Добрый день! Решил поднять старый сайт, написанный на php 5.6 и столкнулся с некоторыми ошибками.

Пытаюсь обрабатывать строку, полученную от пользователя:
PHP:
скопировать код в буфер обмена
  1.  
  2. $logs_usr = mysqli_real_escape_string($_POST['logs_usr']) ;
  3. $logs_usr = preg_replace ("/[^0-9А-Яа-яA-Za-z_ -=]/i", "", $logs_usr) ; // обработка запроса
  4. $logs_usr = trim ($logs_usr) ;
  5. $logs_usr = addslashes($logs_usr) ;
  6.  


И получаю ошибку вида Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given

Почитал документацию, в документации сказано, что mysqli_real_escape_string использует два параметра и первый из них это соединене с базой. Ну ок, теперь понятно, использует значит так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $logs_usr = mysqli_real_escape_string($connection, $_POST['logs_usr']) ;
  3. $logs_usr = preg_replace ("/[^0-9А-Яа-яA-Za-z_ -=]/i", "", $logs_usr) ; // обработка запроса
  4. $logs_usr = trim ($logs_usr) ;
  5. $logs_usr = addslashes($logs_usr) ;
  6.  


И получаю другую ошибку Warning: mysqli_real_escape_string(): Couldn't fetch mysqli

$connection у меня выглядит вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $connection = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME) ;
  3.  


Подскажите, пожалуйста, что я сделал не так?
2. Vladimir Kheifets - 09 Февраля, 2020 - 16:58:46 - перейти к сообщению
nj31 пишет:
Warning: mysqli_real_escape_string(): Couldn't fetch mysqli
Подскажите, пожалуйста, что я сделал не так?
Добрый день!
Вам необходимо проверить если соединение с помощью mysqli_connect_errno().
Если соединие было установлено, то проверьте не было ли оно закрыто mysqli_close($connection) до
$logs_usr = mysqli_real_escape_string($connection, $_POST['logs_usr']) ;
Удачи!
3. nj31 - 09 Февраля, 2020 - 17:13:32 - перейти к сообщению
Vladimir Kheifets пишет:
nj31 пишет:
Warning: mysqli_real_escape_string(): Couldn't fetch mysqli
Подскажите, пожалуйста, что я сделал не так?
Добрый день!
Вам необходимо проверить если соединение с помощью mysqli_connect_errno().
Если соединие было установлено, то проверьте не было ли оно закрыто mysqli_close($connection) до
$logs_usr = mysqli_real_escape_string($connection, $_POST['logs_usr']) ;
Удачи!


Да, действительно, соединение было закрыто. Надо мне быть внимательнее. Спасибо! Буду учиться!

 

Powered by ExBB FM 1.0 RC1