Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Błąd bazy danych #1267: Illegal mix of collations
Forum PHP.pl > Forum > Bazy danych > MySQL
scanner
Zdurniałem.

php: 5.0.3
MySQL: 4.1.8
Mantis: 0-19.2

Próba dodania np. kategorii zawirajacej PL znaczki skutkuje wynikiem:
Cytat
Błąd bazy danych #1267: Illegal mix of collations (latin2_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' dla zapytania SELECT COUNT(*)
FROM mantis_project_category_table
WHERE project_id='1' AND
category='Funkcjonalności'.

Przyznam, ze nie wgryzałem się w manual nowego mysql'a - gdzie szukac przyczyny błędu?

Kodowanie strony ustawione na UTF-8.

Niestosowanie polskich znaków eliminuje błędy, ale to nie o to przecież chodzi..
Pomóżcie ciężko zapracowanemu smile.gif
GrZeCh
hmm .. jako ze nie jestem specjalista w tej dziedzinie to moge sie mylic .. ale ogolnie to u mnie w galerii od dzisiaj rana wyskakuje problem
Kod
DB Error: Bad SQL Query: DELETE FROM 4images_sessionvars WHERE session_id NOT IN ('f4c25e85f5bb17e67eeb8dab179c8b4f', '9016fbdaf3510e37d1da36f20f50e432', 'a7a7d27f3ede606efefda2024f04a01e', 'd77bf0318ad1ef7d269d67b22eda6fec', 'cd83cd0ab780e142f00f68f7f6971161', 'c3d30fc3cd4674c94d2fcf1e69b75e8a', 'b777ad571b33f49d2cbe99748359c86d', 'fad56cf1269e34a2deccdc7f2bc088f8', '150aa8941ece65474ec3d37c2b863868', '571d25b154ea989b8ee1e59c9b421208', '3910e76d954679c8e6785007b1b3a116')
Illegal mix of collations for operation ' IN '


i za cholere nie rozumiem czemu tak sie dzieje .. wczoraj kladlem sie spac to wszystko bylo dobrze .. poszukalem troche po sieci i znalazlem cos takiego aby wpisac w bazie MySQL taka komende:
Kod
mysql> show variables like 'colla%';


i u mnie dalo to taki wynik:

Kod
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin2_general_ci |
| collation_server     | latin2_general_ci |
+----------------------+-------------------+


i chyba o to sie rozbija ze jest te swedish .. wie ktos moze jak to zmienic?
dr_bonzo
http://dev.mysql.com/doc/mysql/en/charset-mysql.html
http://dev.mysql.com/doc/mysql/en/charset-connection.html, itd
Cytat
shell> mysqld
shell> mysqld --default-character-set=latin1
shell> mysqld --default-character-set=latin1 \
          --default-collation=latin1_swedish_ci

// lub przy kompilacji mysqla ustawia sie te parametry.
// ...

SET NAMES 'charset_name'
SET CHARACTER SET charset_name

SET NAMES indicates what is in the SQL statements that the client sends. Thus, SET NAMES 'cp1251' tells the server ``future incoming messages from this client will be in character set cp1251.'' It also specifies the character set for results that the server sends back to the client. (For example, it indicates what character set column values will have if you use a SELECT statement.)

A SET NAMES 'x' statement is equivalent to these three statements:

mysql> SET character_set_client = x;
mysql> SET character_set_results = x;
mysql> SET character_set_connection = x;


Nie wiem czy to zadziala, u siebie mam tylko utf_general_ci, wiec nie mam jak tego sprawdzic.
Bora
Scanner jak udało tobie się to rozwiązać?
Mam na localu XP apache 1.3.33 php 5.0.3 i mysql 4.1.3 i podobny problem.
set NAMES latin2
SET CHARACTER SET latin2
set collation_connection = latin2_general_ci
character_set_client = latin2_general_ci
i niestety nic nie pomaga.
może update do 5.1 pomoże w co wątpie.
tts
http://bugs.mysql.com/bug.php?id=3611
mnie udalo sie to ominac wykonujac przed kazdym zapytaniem: SET CHARACTER SET latin2, btw, na mysql 4.1.10 nie zauwazylem tego objawu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.