Вставка русских символов в MySQL с использованием процедуры

Процедуры в MYSQL очень удобная вещь, однако, при использовании русских (или других символов unicode) можно натолкнуться на неприятность с кодировкой.

И так пример:
Создаем таблицу:
CREATE TABLE `friends` (
`Id` int(11) NOT NULL auto_increment,
`friend_name` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Создаем процедуру, согласно пример из документации MySQL:


DELIMITER //
CREATE PROCEDURE `addFriend`(
IN FName VARCHAR(255))
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ”
BEGIN
insert into `friends`(`friend_name`) values (FName);
END;
DELIMITER ;

Это процедура сработает, однако в поле friend_name будут знаки вопроса


DELIMITER //
CREATE PROCEDURE `addFriend`(
IN FName VARCHAR(255) charset utf8 )
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ”
BEGIN
INSERT INTO `friends`(`friend_name`) values (convert(FName USING utf8));
END;
DELIMITER ;

После вызова:
mysql> CALL addFriend('Кто твой друг');

Содержимое поля будет в правильной кодировке.

Комментариев пока нет.

Подобные

Плагин аукциона для WordPressПлагин аукциона для WordPress

Разрабатываю плагин аукциона для WordPress, и, поскольку плагин разрабатывался не с нуля, а на основе готового, решил им поделиться. Оригинал – Wp-auctions предоставляет довольно урезанный функционал и сделан бесплатным с

Топ-менеджер ОТП о том, каким должен быть современный лидерТоп-менеджер ОТП о том, каким должен быть современный лидер

Директор по персоналу и организационному развитию ОТП Банка Наталья Рощина рассказала, как изменились подходы в управлении одной из ведущих компаний финансового сектора за прошедшие годы.

Пользовательское соглашение

Опубликовать
Яндекс.Метрика