Problem mit Umlauten bei MySQL Select

Dieses Thema im Forum "Datenbanksysteme für das Web" wurde erstellt von BendAR, 15.08.2005.

  1. BendAR

    BendAR Thread Starter MacUser Mitglied

    Beiträge:
    165
    Zustimmungen:
    0
    MacUser seit:
    30.11.2003
    Hallo,
    ich habe eine Tabelle mit Städte Namen in latin1_swedish_ci.
    Wenn ich jetzt mit einem Select LIKE '%München%' suche, findet er über PHP nichts. Direkt als SQL Statement funktioniert es aber. Ohne Umlaute funktioniert es auch unter PHP prächtig.
    Kennt jemand das Problem?

    MySQL 4.1.9-standard
    PHP 4.3.10
     
  2. master_p

    master_p MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    MacUser seit:
    31.01.2005
    Also bei mir funktionieren Umlaut auch in PHP. Wie genau ist denn Dein PHP-Code? Es muss ja eigentlich daran liegen, wenn es mit SQL funktioniert und unter PHP auch funktioniert, wenn es kein Umlaut ist.

    Lass Doch mal Deinen Query ausprinten. Vielleicht wandelt PHP da irgendetwas falsch um. Also am besten mal so ausgeben lassen:
    Code:
    print $query = "SELECT * FROM latin1_swedish_ci WHERE fieldname LIKE '%München%'";
    
    Was genau steht dann da als Query?
     
  3. BendAR

    BendAR Thread Starter MacUser Mitglied

    Beiträge:
    165
    Zustimmungen:
    0
    MacUser seit:
    30.11.2003
    Mit latin_swedish_ci meinte ich eigentlich die Kollation :)
    Die Query stimmt schon, denn wenn ich die ausgeben lasse und dann in MySQL direkt ausprobiere, funktioniert es ja.
    Es liegt wohl an der Kodierung, nur leider weiss ich nicht, wie ich das Problem beheben kann.
     
  4. ThaHammer

    ThaHammer MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    MacUser seit:
    01.06.2004
    Vielleicht solltes die Ü,ä,ö als html ü speichern?
     
  5. TheGreenman

    TheGreenman MacUser Mitglied

    Beiträge:
    192
    Zustimmungen:
    3
    MacUser seit:
    14.05.2005
    Wie wäre es wenn du die Kollation so umstellst das sie Umlaute unterstützt.
    Ich hab das mal im MS SQL Server 2000 für Unicode umgestellt auf SQL_Latin1_General_CP850_CI_AS. Dabei wird auch noch Groß- und Kleinschreibung ignoriert durch das CI, falls du drüber suchen musst. Wie das bei MySQL aussieht weiß ich nicht genau, müsste aber irgendwie ähnlich sein.

    Gruß
    TheGreenman
     
  6. gishmo

    gishmo MacUser Mitglied

    Beiträge:
    812
    Zustimmungen:
    23
    MacUser seit:
    16.03.2004
    Hi,

    ich tippe mal, dein Problem ist nicht mySql sondern der WebSrever respektive PHP.

    Die laufen ja auch mit einer Encodierung. Wie man das in PHP ändert weiss ich nicht. In Java ist das entsprechende Locale zu setzen.

    cu Frank
     
  7. Reimer

    Reimer MacUser Mitglied

    Beiträge:
    327
    Zustimmungen:
    3
    MacUser seit:
    01.06.2007
    Kollation bleibt latin_swedish_ci

    So, dann grab ich diesen Steinzeit-Thread wieder aus.

    Ich habe eine Tabelle angelegt, die Kollation aber ist latin_swedish_ci und läßt sich einfach nicht ändern, egal was ich tu.

    Die Kollation anderer Tabellen in der MySQL-DB ist aber utf8_general_ci.

    Woran kann es liegen, dass ich das latin_swedish_ci nicht weg bekomme?
     
  8. Reimer

    Reimer MacUser Mitglied

    Beiträge:
    327
    Zustimmungen:
    3
    MacUser seit:
    01.06.2007
    Problem gelöst.
     
  9. gishmo

    gishmo MacUser Mitglied

    Beiträge:
    812
    Zustimmungen:
    23
    MacUser seit:
    16.03.2004
    Und was war es? :)
     
  10. Reimer

    Reimer MacUser Mitglied

    Beiträge:
    327
    Zustimmungen:
    3
    MacUser seit:
    01.06.2007
    Die Kollation, die hab ich im Create-Befehl mit angegeben und gut war. Standardmäßig wird aber latin_swedish_ci benutzt. Warum auch immer :noplan:
     
Die Seite wird geladen...

Diese Seite empfehlen