IVAN.Z 2 Posted February 27, 2021 Report Share Posted February 27, 2021 DELIMITER $$ DROP FUNCTION IF EXISTS `_fs_transliterate_ru` $$ CREATE DEFINER=`root`@`localhost` FUNCTION `_fs_transliterate_ru`(str TEXT CHARSET utf8) RETURNS text CHARSET utf8 DETERMINISTIC SQL SECURITY INVOKER BEGIN DECLARE strlow TEXT CHARSET utf8; DECLARE sym VARCHAR(3) CHARSET utf8; DECLARE prevsub VARCHAR(3) CHARSET utf8; DECLARE sub VARCHAR(3) CHARSET utf8; DECLARE res TEXT CHARSET utf8; DECLARE len INT(11); DECLARE i INT(11); DECLARE pos INT(11); DECLARE alphabeth VARCHAR(37) CHARSET utf8; SET i = 0; SET res = ''; SET strlow = LOWER(str); SET len = CHAR_LENGTH(str); SET alphabeth = ' _.абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; /* идем циклом по символам строки */ WHILE i < len DO SET i = i + 1; SET sym = SUBSTR(strlow, i, 1); SET pos = INSTR(alphabeth, sym); /*выполняем преобразование припомощи ф-ии ELT */ IF sym >= '0' AND sym <= '9' OR sym >= 'a' AND sym <= 'z' OR sym = '-' THEN SET sub = sym; ELSE SET sub = elt(pos, '-', '-', '-', 'a','b','v','g', 'd', 'e', 'yo','zh', 'z', 'i','j','k','l', 'm', 'n', 'o', 'p', 'r', 's','t','u','f', 'h', 'c','ch','sh','sch', '', 'y', '','e','yu','ya'); END IF; IF sub IS NOT NULL AND NOT(sub = '-' AND prevsub = '-') THEN SET res = CONCAT(res, sub); END IF; SET prevsub = sub; END WHILE; RETURN res; END $$ DELIMITER ; При выполнении запроса на хостинге в phpmyadmin выдает. Ошибка SQL запрос: CREATE DEFINER=`root`@`localhost` FUNCTION `_fs_transliterate_ru`(str TEXT CHARSET utf8) RETURNS text CHARSET utf8 DETERMINISTIC SQL SECURITY INVOKER BEGIN DECLARE strlow TEXT CHARSET utf8; DECLARE sym VARCHAR(3) CHARSET utf8; DECLARE prevsub VARCHAR(3) CHARSET utf8; DECLARE sub VARCHAR(3) CHARSET utf8; DECLARE res TEXT CHARSET utf8; DECLARE len INT(11); DECLARE i INT(11); DECLARE pos INT(11); DECLARE alphabeth VARCHAR(37) CHARSET utf8; SET i = 0; SET res = ''; SET strlow = LOWER(str); SET len = CHAR_LENGTH(str); SET alphabeth = ' _.абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; /* идем циклом по символам строки */ WHILE i < len DO SET i = i + 1; SET sym = SUBSTR(strlow, i, 1); SET pos = INSTR(alphabeth, sym); /*выполняем преобразование припомощи ф-ии ELT */ IF sym >= '0' AND sym <= '9' OR sym >= 'a' AND sym <= 'z' OR sym = '-' THEN SET sub = sym; [...] Ответ MySQL: Документация #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation Что может быть? Подскажите? Хочу сделать красивые урл а адрес а не product_info.php/info/p2467_Pearl-3-2-9.html Link to post Share on other sites
support 447 Posted February 27, 2021 Report Share Posted February 27, 2021 51 минуту назад, ZM сказал: DELIMITER $$ DROP FUNCTION IF EXISTS `_fs_transliterate_ru` $$ CREATE DEFINER=`root`@`localhost` FUNCTION `_fs_transliterate_ru`(str TEXT CHARSET utf8) RETURNS text CHARSET utf8 DETERMINISTIC SQL SECURITY INVOKER BEGIN DECLARE strlow TEXT CHARSET utf8; DECLARE sym VARCHAR(3) CHARSET utf8; DECLARE prevsub VARCHAR(3) CHARSET utf8; DECLARE sub VARCHAR(3) CHARSET utf8; DECLARE res TEXT CHARSET utf8; DECLARE len INT(11); DECLARE i INT(11); DECLARE pos INT(11); DECLARE alphabeth VARCHAR(37) CHARSET utf8; SET i = 0; SET res = ''; SET strlow = LOWER(str); SET len = CHAR_LENGTH(str); SET alphabeth = ' _.абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; /* идем циклом по символам строки */ WHILE i < len DO SET i = i + 1; SET sym = SUBSTR(strlow, i, 1); SET pos = INSTR(alphabeth, sym); /*выполняем преобразование припомощи ф-ии ELT */ IF sym >= '0' AND sym <= '9' OR sym >= 'a' AND sym <= 'z' OR sym = '-' THEN SET sub = sym; ELSE SET sub = elt(pos, '-', '-', '-', 'a','b','v','g', 'd', 'e', 'yo','zh', 'z', 'i','j','k','l', 'm', 'n', 'o', 'p', 'r', 's','t','u','f', 'h', 'c','ch','sh','sch', '', 'y', '','e','yu','ya'); END IF; IF sub IS NOT NULL AND NOT(sub = '-' AND prevsub = '-') THEN SET res = CONCAT(res, sub); END IF; SET prevsub = sub; END WHILE; RETURN res; END $$ DELIMITER ; При выполнении запроса на хостинге в phpmyadmin выдает. Ошибка SQL запрос: CREATE DEFINER=`root`@`localhost` FUNCTION `_fs_transliterate_ru`(str TEXT CHARSET utf8) RETURNS text CHARSET utf8 DETERMINISTIC SQL SECURITY INVOKER BEGIN DECLARE strlow TEXT CHARSET utf8; DECLARE sym VARCHAR(3) CHARSET utf8; DECLARE prevsub VARCHAR(3) CHARSET utf8; DECLARE sub VARCHAR(3) CHARSET utf8; DECLARE res TEXT CHARSET utf8; DECLARE len INT(11); DECLARE i INT(11); DECLARE pos INT(11); DECLARE alphabeth VARCHAR(37) CHARSET utf8; SET i = 0; SET res = ''; SET strlow = LOWER(str); SET len = CHAR_LENGTH(str); SET alphabeth = ' _.абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; /* идем циклом по символам строки */ WHILE i < len DO SET i = i + 1; SET sym = SUBSTR(strlow, i, 1); SET pos = INSTR(alphabeth, sym); /*выполняем преобразование припомощи ф-ии ELT */ IF sym >= '0' AND sym <= '9' OR sym >= 'a' AND sym <= 'z' OR sym = '-' THEN SET sub = sym; [...] Ответ MySQL: Документация #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation Что может быть? Подскажите? Хочу сделать красивые урл а адрес а не product_info.php/info/p2467_Pearl-3-2-9.html Нет доступа. Надо из под root пользователя выполнять этот запрос. Link to post Share on other sites
IVAN.Z 2 Posted February 27, 2021 Author Report Share Posted February 27, 2021 А как сделать для хостинга? чтобы указать свои? Link to post Share on other sites
support 447 Posted February 27, 2021 Report Share Posted February 27, 2021 7 минут назад, ZM сказал: А как сделать для хостинга? чтобы указать свои? Можно на локаьлном компе выполнить запрос, а затем сохранить базу в sql файлы или через резервное копирование в админке, и перенести эту базу уже на хостинг. Link to post Share on other sites
Recommended Posts