SQL charset/collatie probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Han eev

Han eev

14/10/2008 18:32:00
Quote Anchor link
Heey,
'k heb een probleem :) (Natuurlijk)

Ik heb te maken met veel gegevens, en veel van die gegevens zijn niet nederlands maar engels maar ook van arabisch en ander exotische talen :P
Dat gaat meestal goed maar soms niet. Soms kom je van die rare tekens tegen die je hele database op zijn kop gooien.

Voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM tabel WHERE ( name = ' bank' ) ORDER BY name


Als ik deze code uitvoer in phpmyadmin krijg ik het gewenste resultaat. Als ik deze query uitvoer met mysql_query (in mijn test script) krijg ik opeens dat hij de complete tabel terug geeft. Hij voert zeg maar de SQL Where niet uit. Want hij geeft alles terug. Dus gewoon SELECT * FROM tabel. Hoe kan dat?
phpmyadmin doet het dus wel goed, maar mijn eigen script niet.

Feitjes:
mysql 4 en 5 (beide zelfde geconfigureerd met charset en collatie)
Collatie: utf8_unicode_ci
Mysql karakter set: utf8_unicode_ci
Verbinddings collatie: utf8_unicode_ci
ook gebruik ik SET NAMES 'utf8';

Het rare is dat het nu in phpmyadmin wel goed doet. Maar in mijn eigen script niet. De query is wel in het goede formaat. Omdat phpmyadmin wel het juiste resultaat geeft denk ik dus dat het ergens in mijn script ligt. Maar wat en waar?

Andere database type is niet mogelijk, dus postgreSQL opmerkingen hebben geen nut ^^

Weet iemand hier antwoord op? Hij geeft (van wat ik nu weet) alleen met dit rare tekentje (Ø) de hele database terug.
De tekentjes zoals ² en ³ doen het ook niet, maar die geven gewoon geen resultaat.

Iemand een oplossing?
De query die ik in de mysql functie pleur is dus de bovenste query. En die moet dus goed zijn. Ook qua codering. Google weet het ook niet. :P
Gewijzigd op 01/01/1970 01:00:00 door Han eev
 
PHP hulp

PHP hulp

18/12/2024 09:19:31
 
Han eev

Han eev

15/10/2008 18:31:00
Quote Anchor link
bump :(
 
Martijn B

Martijn B

15/10/2008 19:42:00
Quote Anchor link
Wat ik mis is je HTML is dat ook UTF-8?

Misschien maakt PhpMyAdmin gebruik van de multibyte extensie?
deze dus: http://nl.php.net/manual/en/ref.mbstring.php

Ik neem aan dat je database en tabellen ook UTF-8 zijn?

edit:

Ik heb ff wat geprobeerd als ik de connectie instel op "UTF-8" dan lukt het niet en krijg ik een query error. Zet in de verbinding op "latin1", dat lukt het wel.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Han eev

Han eev

15/10/2008 21:00:00
Quote Anchor link
Bedankt voor je reactie.
Het heeft weinig met html te maken, maar daar staat ook alles op UTF-8 ;-)
Wat inderdaad kan dat phpmyadmin gebruikt maakt van mbstring. Dat ga ik even onderzoeken. Bedankt voor nu. Tabellen en velden zijn allemaal utf-8.
 
Martijn B

Martijn B

15/10/2008 21:06:00
Quote Anchor link
Stuur je deze header ook?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Content-Type: text/html; charset=utf-8');
?>
 
Han eev

Han eev

15/10/2008 21:22:00
Quote Anchor link
Tuurlijk! Maar daar gaat het ook niet fout, het gaat bij het versturen van de gegevens naar de database. Niet bij het weergeven.

mbstring biedt ook geen uitkomst :(

edit:
'k heb het gevonden! :)
De query die ik in de functie douwde bleek wel goed te zijn HTML-technisch gezien maar niet 'php/code' technisch. Ik heb er utf8_encode overheen gehaald en toen werkte het! Toen snapte mysql het! En gaf hij goed resultaat :)

Bedankt voor reacties!
Gewijzigd op 01/01/1970 01:00:00 door Han eev
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.