Hoi,
Ik krijg telkens een foutmelding bij het doen van bepaalde selects op mijn database via PHPMyadmin.
#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
In dit geval was de query "select bla from tablename where ip ='xxx.xxx.xxx.xxx' "
Achtergrondinfo
- Ik heb virtual hosting bij een hoster zonder shell toegang.
- Er draait Mysql 4.1.7, PHPMyadmin 2.6.0-pl3 en Apache 1.3.33 op FreeBSD.
Situatie
Ik krijg de foutmelding alleen vanuit PHPMyadmin. Er worden een hoop selects gedaan vanuit PHP scripts die op de server draaien en die gaan blijkbaar probleemloos. Het probleem lijkt alleen voor te komen als er een WHERE clausule in de query zit en als de query vanuit PHPMyadmin komt. De server verwacht blijkbaar een andere karakterset (utf8?) dan die van mijn query (latin1 swedish?). Daardoor begrijpt-ie misschien het = teken of de 'single quotes' in de query niet.
Op de beginpagina van PHPMyadmin zie ik voor de Mysql server de volgende instellingen staan:
language: English (en-utf8)
Mysql charcterset: UTF-8 Unicode (utf8)
Mysql connection collation: UTF8_general_ci
Op tabelniveau, voor alle tabellen staat de collation op latin1_swedish_ci
Oplossing?
De logische stap lijkt om de collations tussen de mysql server instellingen en de tabel instellingen gelijk te trekken. Moet ik nu de serverinstellingen aan de tabel aanpassen of andersom? Is het uberhaupt veilig en zullen de queries vanaf de site nog werken? Het schijnt een vaker voorkomend probleem te zijn, maar ik durf niet zomaar wat te proberen, want het is een live database van 20+ mb. En dat heen en weer slepen via PHPMyadmin is echt een drama.
Ik krijg telkens een foutmelding bij het doen van bepaalde selects op mijn database via PHPMyadmin.
#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
In dit geval was de query "select bla from tablename where ip ='xxx.xxx.xxx.xxx' "
Achtergrondinfo
- Ik heb virtual hosting bij een hoster zonder shell toegang.
- Er draait Mysql 4.1.7, PHPMyadmin 2.6.0-pl3 en Apache 1.3.33 op FreeBSD.
Situatie
Ik krijg de foutmelding alleen vanuit PHPMyadmin. Er worden een hoop selects gedaan vanuit PHP scripts die op de server draaien en die gaan blijkbaar probleemloos. Het probleem lijkt alleen voor te komen als er een WHERE clausule in de query zit en als de query vanuit PHPMyadmin komt. De server verwacht blijkbaar een andere karakterset (utf8?) dan die van mijn query (latin1 swedish?). Daardoor begrijpt-ie misschien het = teken of de 'single quotes' in de query niet.
Op de beginpagina van PHPMyadmin zie ik voor de Mysql server de volgende instellingen staan:
language: English (en-utf8)
Mysql charcterset: UTF-8 Unicode (utf8)
Mysql connection collation: UTF8_general_ci
Op tabelniveau, voor alle tabellen staat de collation op latin1_swedish_ci
Oplossing?
De logische stap lijkt om de collations tussen de mysql server instellingen en de tabel instellingen gelijk te trekken. Moet ik nu de serverinstellingen aan de tabel aanpassen of andersom? Is het uberhaupt veilig en zullen de queries vanaf de site nog werken? Het schijnt een vaker voorkomend probleem te zijn, maar ik durf niet zomaar wat te proberen, want het is een live database van 20+ mb. En dat heen en weer slepen via PHPMyadmin is echt een drama.