Neviem cim to presne je ale mam v aplikacii routing kde je SERVER/CONTROLLER/ACTION/PARAM1/VALUE1/PARAM2/VALUE2... Teraz vsetky PARAM a VALUE davam do globalnej premennej GET a zaroven na ne aplikujem funkciu urldecode. Potom pri pouziti Zend_Db mam nasledovny dotaz
Kód:
$select = $database->select()
->from('users', array('ID','Name'))
->where('Name REGEXP ?', $regex);
Kde $regex je '^($letter)'; a $letter je pismeno abecedy co je v podstate hodnota parametra PARAM1 - teda je to VALUE1.
Vyzera ze vsetko ide v poriadku ale len na niektore pismena v abecede. Ked mam bezne pismene bez diakrity je vsetko ok ale su niektore s diakritikou napr. Á, Ž alebo Ň tak to nejde. Nenájde nič. Samozrejme v DB v tabulke users mam uzivatelov s ich menom zacinajucim na Á, Ž aj Ň. Nie sú to realne mena ale na skusku.
Tak napr. localhost/index/index/letter/M vrati 3 vysledky ale localhost/index/index/letter/Ň nevrati nic aj ked existuje jedno take meno v tej tabulke.
Viete mi poradit ze kde moze byt chyba? V routingu, pri urldecode, v mysql dotaze?
Skusal som aj priamo v PHPMYADMIN a ani tam mi to neslo s tymi isty znakmi. Asi to ma problem zo znakovou sadou.
Databazu mam v collate UTF8_GENERAL_CI. Je potrebne prekonvertovat $letter na UTF-8? Ak ano tak ako? A je potrebne aj zadat za SQL dotaz aj COLLATE "UTF8_GENERAL_CI" - tiez by som v tom pripade potreboval poradit ze ako na to
Dakujem