Транслит в MySQL

185
06 октября 2018, 15:10

При переносе сайта с одного хостинга на другой перестала работать функция транслита, на старом работает, на новом нет. Помогите пожалуйста понять в чем проблема. Запрос в phpmyadmin: SELECT translit_func('русский в траслит') Результат:aaaaaaa-a-aaaaaaa

    DELIMITER $$
   CREATE FUNCTION `translit_func`(`_txt` VARCHAR(250)) RETURNS text CHARSET     utf8
BEGIN
   DECLARE _f varchar(5);
   DECLARE _t varchar(15);
   DECLARE done INT DEFAULT FALSE;
   DECLARE cur CURSOR FOR SELECT f,t from translit;
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open cur;
the_loop: LOOP
#get the values of each column into our variables
FETCH cur INTO _f,_t;
IF done THEN
  LEAVE the_loop;
END IF;
set _txt=replace(_txt,_f,_t);   
END LOOP the_loop;
CLOSE cur;
return _txt;
END $$
DELIMITER ;

Таблица translit

    CREATE TABLE IF NOT EXISTS `translit` (
   `t` varchar(3) NOT NULL,
    `f` varchar(15) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
   INSERT INTO `translit` (`t`, `f`) VALUES
 ('a', 'а'),
 ('b', 'б'),
 ('v', 'в'),
 ('g', 'г'),
 ('d', 'д'),
 ('e', 'е'),
 ('e', 'ё'),
 ('zh', 'ж'),
 ('z', 'з'),
 ('i', 'и'),
 ('y', 'й'),
 ('k', 'к'),
 ('l', 'л'), ... и т.д.
Answer 1

Надо было поменять настройки базы, которые по умолчанию были не те что надо

character_set_database  latin1 --> utf8
collation_database  latin1_swedish_ci --> utf8_general_ci
READ ALSO
Аномальное поведение nodej и MySQL, потеря связи

Аномальное поведение nodej и MySQL, потеря связи

Встретился с аномальным поведением NodeJS и MySQLВопрос очень специфический, буду рад любым догадкам

191
Не пишет в базу (Python)

Не пишет в базу (Python)

Подскажите, почему не получается записать(на python) в базу(mysql) В чем ошибка ?

170
Как в MySQL правильно искать фразу целиком

Как в MySQL правильно искать фразу целиком

Есть таблица с текстовым полем, содержащим ссылкиВ разных строках таблицы эти ссылки произвольной длины

186
Как получить позицию строки в выдаче MYSQL?

Как получить позицию строки в выдаче MYSQL?

Выполняем запрос: SELECT id, name, rank FROM table ORDER BY rank DESC, id DESC Мне нужно получить позицию в этой выдаче строки с фиксированным id (например id=50)Как это...

180