php mysqli_query запрос UPDATE не записывает русские буквы и текст в бд

PHP (пхп) / mysql (май скл)
Тэги: php mysql

📅12-07-2016 👁883

PHP скрипт при работе с mysqli_query запрос UPDATE не записывает русские буквы и текст в базу данных.
Скрипт записан в формате Windows Cirillic.
Русские текст не записывается в нескольких случаев.
Сначала проверьте что у вас сразу после подключения к БД стоит функция:

mysqli_query ($db, "SET NAMES CP1251");
или для старых PHP
mysql_query ("SET NAMES CP1251");


Если русский текст продолжается не сохранятся в БД то возможно перед его занесением вы используете на текст какую-нибудь функцию PHP которая его автоматом конвентирует в UTF8, например функция htmlspecialchars()

Поэтому уберите все функции которые обрабатывают ваш текст до внесения в БД и попробуйте подставить напрямую с $_POST['текст']

Для функции htmlspecialchars используйте параметры для конкретной кодировки, например:

$text = htmlspecialchars($_POST["text"],ENT_QUOTES|ENT_HTML401 ,$encoding = 'cp1251');



После этого ваш текст в кодировке Windows 1251 с удовольствием запишется в MYSQL базу данных.
Но все же лучше переходите на UTF-8 - меньше геммора с этими кодировками и поисками ошибок.

для экранирования также можно использоваться функции addslashes(), mysqli_real_escape_string() или вручную str_replace().
С addslashes могут возникнуть проблемы при работе с GBK.



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы