Autor | Zpráva | ||
---|---|---|---|
Prophet_TX7 Profil |
#1 · Zasláno: 14. 8. 2009, 14:27:46
Zdravím,
vytvořil jsem si v MySQL databázi vlastní fci SKL_NUM, která přebírá dva parametry, potřebuji jí hodit do WHERE a porovnat její výsledek s řetězcem, výraz vypadá takto: SKL_NUM(odkaz, vyrobky_baleni.id) LIKE '%{$_POST['slovo']}%' Krásně mi to běží na firemním testovacím serveru, ale když to hodím na ostrý, nastává velký problém (a je jedno jestli tam je LIKE nebo = ): Illegal mix of collations (utf8_czech_ci,COERCIBLE) and (utf8_general_ci,COERCIBLE) částečné řešení je do dotazu připsat: COLLATE utf8_general_ci problém je, že takováto nebo podobná podmínka se vyskytuje v celém systému na mnoho místech v mnoha souborech, proto bych to rád vyřešil nějak jinak, na jednom místě PHP skript pro připojení vypadá následovně: mysql_connect($promene['mysql_server'],$promene['mysql_user'],$promene['mysql_pass']); mysql_select_db($promene['mysql_select_db']); mysql_query ('SET character_set_client=utf8'); mysql_query ('SET collation_connection=utf8_czech_ci'); mysql_query ('SET character_set_connection=utf8'); mysql_query ('SET character_set_results=utf8'); mysql_query ("set names utf8"); co s tím? děkuji |
||
Joker Profil |
#2 · Zasláno: 14. 8. 2009, 14:34:39
Prophet_TX7:
Tipnul bych, že sloupec v té tabulce má nastavené porovnávání utf8-general-ci, zatímco se mu snažíte vnutit utf8-czech-ci - něco takového. |
||
Prophet_TX7 Profil |
#3 · Zasláno: 14. 8. 2009, 14:38:02
[#2]
Nejedná se o sloupec, ale o funkci.. když toto vyzkouším v phpMyAdminu, vyhodí to tu samou chybu, ale jakmile změním spojení v něm na utf8_czech_ci, už to běží.. ale toto spojení mám i ve svém skriptu a neběží :-( viz mysql_query ('SET collation_connection=utf8_czech_ci'); |
||
Joker Profil |
#4 · Zasláno: 14. 8. 2009, 14:56:42
Nepomohlo by tohle? http://forums.mysql.com/read.php?26,6528,15661
|
||
Prophet_TX7 Profil |
#5 · Zasláno: 14. 8. 2009, 15:20:27 · Upravil/a: Prophet_TX7
Joker: děkuji, ale už jsem to vyřešil :-)
Vím, že teď budu za blbce, že si sám odpovím chvilku po zadání dotazu, ale už jsem to řešil celý den, pak napíšu dotaz a zachvilku na to přijdu, zákon schválnosti :-D místo těch 5 řádků, stačil jeden: mysql_query ('SET NAMES utf8 COLLATE utf8_czech_ci'); pravděpodobně je na ostrém serveru nastavena jiná znaková/porovnávací sada databáze Snad to někomu i pomůže :-) |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0