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 :: Версия для печати :: PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\xA4\xA3' for column 'name' at row 1 in
Форумы портала PHP.SU » PHP » Программирование на PHP » PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\xA4\xA3' for column 'name' at row 1 in

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

1. Sasha777 - 03 Ноября, 2019 - 21:01:00 - перейти к сообщению
при попытке поставить смайлик выдаёт ошибку PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\xA4\xA3' for column 'name' at row 1 in
и помогите с вкл и выкл гиперссылки, уже запарился
PHP:
скопировать код в буфер обмена
  1.  
  2. global $pdo;
  3.         if(empty($params[1]) || mb_strlen($params[1], 'utf-8') > 15) { $Wolf->send("используйте: «ник [имя до 15 символов]» 😔"); return; }
  4.         if($params[1] == mb_strtolower('вкл')) {
  5.                 $Wolf->send("гиперссылка включена!");
  6.                 return;
  7.         }
  8.         if($params[1] == mb_strtolower('выкл')) {
  9.                 //$sql = "UPDATE accounts SET name = '".$user['first_name']."' WHERE uid = ".$user['id'];
  10.                 $Wolf->send("гиперссылка выключена!");
  11.                 return;
  12.         }
  13.         $sql = "UPDATE accounts SET name = '".$params[1]."' WHERE uid = ".$user['id'];
  14.         $result = $pdo->query($sql);
  15.         $Wolf->sendt("Вы теперь <<".$params[1].">>");
  16.  
2. Мелкий - 03 Ноября, 2019 - 21:43:44 - перейти к сообщению
В отличии от прочего вопрос менее тривиален и проблема действительно может вводить в заблуждение.

Sasha777 пишет:
при попытке поставить смайлик

Проблема именно в этом.
Смайлики - это четырёхбайтовые символы utf8.
То что на данный момент отзывается на utf8 в mysql - не есть utf8, а лишь неполная реализация, максимум 3 байта на символ.

Для обработки смайликов в mysql вы должны использовать кодировку соединения и полей utf8mb4

PS: и почитайте про sql-инъекции.

 

Powered by ExBB FM 1.0 RC1