![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 164 Pomógł: 4 Dołączył: 29.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem, stworzyłem funkcję za pomocą której dodając tekst rozdzielony spacjami, zostanie on dodany do bazy danych, każdy wyraz w osobnym rekordzie. Wszystko działa poprawnie, poza rozdzielaniem niektórych wyrazów z polskimi znakami, np. wysyłając treść:
"Hrabia wracał do siebie lecz konia wstrzymywał Głową coraz w tył kręcił w ogród się wpatrywał I raz mu się zdawało". W stworzonym zapytaniu dodającym kolejne wyrazy do bazy danych, niektóre słowa zostają ucięte: Kod INSERT INTO ewolon_search_index(`id`,`idSearch`,`word`,`lang`) VALUES ('','1','Hrabia',0),('','1','wracał',0),('','1','siebie',0),('','1','lecz',0), ('','1','konia',0),('','1','wstrzymywał',0),('','1','łową',0),('','1','raz',0), ('','1','tył',0),('','1','ręcił',0),('','1','ogród',0),('','1','ię',0), ('','1','patrywał',0),('','1','raz',0),('','1','się',0),('','1','dawało',0) Kod CREATE DEFINER=`root`@`localhost` FUNCTION `_add2Index`(`idArticle` INT, `lang` INT, `text2Index` TEXT) RETURNS text LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE queryText TEXT; DECLARE counter INT; SET CHARSET utf8; SET NAMES `utf8` COLLATE `utf8_polish_ci`; SET counter = 0; SET queryText = "INSERT INTO ewolon_search_index(`id`,`idSearch`,`word`,`lang`) VALUES"; SET @saTail = text2Index; loop_index: WHILE @saTail!='' DO SET @sHead = SUBSTRING_INDEX(@saTail, ' ', 1); SET @saTail = SUBSTRING( @saTail, LENGTH(@sHead)+2); IF LENGTH(@sHead)>2 THEN IF counter > 0 THEN SET queryText = CONCAT(queryText,",('','",idArticle,"','",@sHead,"',",lang,")"); ELSE SET queryText = CONCAT(queryText,"('','",idArticle,"','",@sHead,"',",lang,")"); END IF; SET counter = counter + 1; END IF; SET queryText = CONCAT(queryText,@saTail); END WHILE loop_index; RETURN queryText; END Szukam i szukam i już nie wiem co jest nietak, wydaje mi się, że wynika to z winy polskich niektórych polskich ogonków. W php treść wygląda poprawnie, jest ona wysyłana postem, wyświetla się tak, jak powinna, przy połączeniu z bazą danych mam ustawione: "SET NAMES UTF8" Jak wybrnąć z tego problemu?? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 13:34 |