Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Возникла проблема с кодировкой при использовании процедур. Сама база в utf8 и там уже есть записи с разной кодировкой, но при вставке или обновлении заносится одни вопросительные знаки. Дело в том что при обычном запросе все работает, проблема при использовании процедур. У меня на локалке все работает, на сервере нет. Думал проблема с моими php скриптами, но прямо на сервере phpmyadmin тоже самое делает. Не подскажите в чём может быть причина?
Неактивен
Указывайте кодировку параметров процедуры явным образом.
По умолчанию для них используется кодировка базы.
If there is no CHARACTER SET attribute, the database character set and collation in effect at routine creation time are used. (The database character set and collation are given by the value of the character_set_database and collation_database system variables.)
http://dev.mysql.com/doc/refman/5.5/en/ … edure.html
Неактивен
При каких запросах сервер выдает
Неактивен
Вот таблица и процедура
Неактивен
Если вы для параметров процедуры явно не указали кодировку, то используется character_set_database, которая в вашем случае имеет значение latin1
cyberman написал:
Только я не понял как в процедуре явно указать кодировку?
CREATE PROCEDURE SP_DEBUG(IN _DEBUG_TEXT VARCHAR(255) charset utf8)
Неактивен
Спасибо. А если на сервере поменять настройку character_set_database на utf8, можно будет обойтись без изменения процедуры? Процедур уже много и я могу их попросить это сделать.
Просто я на локалке явно указал character-set-database=latin1 в my.ini [client], но несмотря на неправильную кодировку работает без проблем.
Неактивен
If there is no CHARACTER SET attribute, the database character set and collation in effect at routine creation time are used.
Т.е. вам придется пересоздать процедуры при правильно указаном character_set_database.
Неактивен
Спасибо, понял.
Неактивен