Heyho,
ich habe vor ein paar Wochen angefangen mich mit PHP und MySQL zu versuchen und daran recht viel Freude gefunden. Soweit löse ich alle Probleme selbst doch komme mit folgendem einfach nicht weiter:
Ich habe eine Datenbank und eine Homepage mit einem Login etc. und entsprechenden funktionen für registrierte Benutzer.
Bisher habe ich alle Datensätze mit dem Datenbankstandardzeichensatz also UTF-8 abgespeichert.
Nun registrieren sich einige Benutzer (aus welchen Gründen auch immer) mit allen möglichen Sonderzeichen im Namen, was von der Datenbank bei SELECT-Abfragen nicht beachtet wird (zB. zeigt eine suche nach einem Begriff mit ß auch Datensätze mit s an, oder Å = a usw.). Also habe ich lange rumprobiert und nun als "einfachste" bzw. schnellste Lösung (nachdem ich alle möglichen anderen Zeichensätze durchprobiert habe) auf binäre Kollation umgestellt. Damit funktionieren natürlich wiederum andere Dinge nicht (Abfragen mit LIKE) o.ä.
Kann mir da eventuell jemand einen Denkanstoß geben wie ich es realisieren kann, dass sowohl Benutzer (oder andere von Benutzern eingegebenen Daten) was Sonderzeichen angeht eindeutig sind, als auch case insensitive bzw so gespeichert werden, dass "ungenauere" Suchanfragen akzeptiert werden? Ist das alleine mit der Datenbank zu realisieren, oder gibt es da eventuell einen workaround mittels PHP?
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und bedanke mich schon Mal für jegliche Hilfe.
Liebe Grüße.
ich habe vor ein paar Wochen angefangen mich mit PHP und MySQL zu versuchen und daran recht viel Freude gefunden. Soweit löse ich alle Probleme selbst doch komme mit folgendem einfach nicht weiter:
Ich habe eine Datenbank und eine Homepage mit einem Login etc. und entsprechenden funktionen für registrierte Benutzer.
Bisher habe ich alle Datensätze mit dem Datenbankstandardzeichensatz also UTF-8 abgespeichert.
Nun registrieren sich einige Benutzer (aus welchen Gründen auch immer) mit allen möglichen Sonderzeichen im Namen, was von der Datenbank bei SELECT-Abfragen nicht beachtet wird (zB. zeigt eine suche nach einem Begriff mit ß auch Datensätze mit s an, oder Å = a usw.). Also habe ich lange rumprobiert und nun als "einfachste" bzw. schnellste Lösung (nachdem ich alle möglichen anderen Zeichensätze durchprobiert habe) auf binäre Kollation umgestellt. Damit funktionieren natürlich wiederum andere Dinge nicht (Abfragen mit LIKE) o.ä.
Kann mir da eventuell jemand einen Denkanstoß geben wie ich es realisieren kann, dass sowohl Benutzer (oder andere von Benutzern eingegebenen Daten) was Sonderzeichen angeht eindeutig sind, als auch case insensitive bzw so gespeichert werden, dass "ungenauere" Suchanfragen akzeptiert werden? Ist das alleine mit der Datenbank zu realisieren, oder gibt es da eventuell einen workaround mittels PHP?
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und bedanke mich schon Mal für jegliche Hilfe.
Liebe Grüße.
Kommentar