Всем привет,
Столкнулся с такой проблемой. На первый взгляд избитая тема — символы вопросов в БД вместо русских букв. Но ситуация немного другая.
В БД использую utf8. Из PHP после подключения отправляю SET NAMES 'utf8'. На
всякий случай вот:
// Установка соединения
$link = mysqli_init();
if (!$link)
die('Failed to init mysqli');
$res = @mysqli_real_connect($link, DB_HOST, DB_LOGIN, DB_PASS, DB_NAME);
if (!$res)
die("Failed to connect to the mysql server: ".mysqli_connect_error());
if (!mysqli_query($link, "SET NAMES 'utf8'"))
die("Can't execute query: ".mysqli_error($link));
Все ок, из PHP отправляю запросы и русский текст в БД сохраняется корректно, а также с отображением на странице никаких проблем. На странице тоже кодировка utf8, и сами скрипты php сохранены как utf8 w/o BOM.
Когда я передаю в хранимую процедуру текст в качестве параметра, она пишет его в поле таблицы. И в этом случае:
На локальной машине все ОК
На хостинге вместо русских символов я вижу знаки вопроса
Что можно попробовать здесь? Хотелось бы без лишних наворотов, попроще.
Здравствуйте, danclax, Вы писали:
D>Всем привет,
D>Столкнулся с такой проблемой. На первый взгляд избитая тема — символы вопросов в БД вместо русских букв. Но ситуация немного другая.
D>В БД использую utf8. Из PHP после подключения отправляю SET NAMES 'utf8'. На всякий случай вот:
D>D>// Установка соединения
D>$link = mysqli_init();
D>if (!$link)
D> die('Failed to init mysqli');
D>$res = @mysqli_real_connect($link, DB_HOST, DB_LOGIN, DB_PASS, DB_NAME);
D>if (!$res)
D> die("Failed to connect to the mysql server: ".mysqli_connect_error());
D>if (!mysqli_query($link, "SET NAMES 'utf8'"))
D> die("Can't execute query: ".mysqli_error($link));
D>
D>Все ок, из PHP отправляю запросы и русский текст в БД сохраняется корректно, а также с отображением на странице никаких проблем. На странице тоже кодировка utf8, и сами скрипты php сохранены как utf8 w/o BOM.
D>Когда я передаю в хранимую процедуру текст в качестве параметра, она пишет его в поле таблицы. И в этом случае:
D>
D>На локальной машине все ОК
D>На хостинге вместо русских символов я вижу знаки вопроса
D>
D>Что можно попробовать здесь? Хотелось бы без лишних наворотов, попроще.
Тип параметра хранимой процедуры???
У вас скорее всего
IN p1 VARCHAR(x)
поменяйте на
IN p1 VARCHAR(x) character set utf8
Здравствуйте, Nonmanual Worker, Вы писали:
NW>Тип параметра хранимой процедуры???
NW>У вас скорее всего IN p1 VARCHAR(x)
поменяйте на IN p1 VARCHAR(x) character set utf8
Спасибо, помогло!!
Был TEXT и VARCHAR, там просто много мест.
А на локальной машине все ок, т.к. я поставил utf8 по дефолту на самом верхнем уровне, на уровне СУБД.