Schock: mysql nicht casesensitiv???
Rudi
- datenbank
Hi,
ich stelle gerade halb geschockt, halb amüsiert fest, daß einige meiner Abfragen in php/mysql nicht casesensitiv sind, also:
$query = "update usertable set UserAktiv="1", UserLastvisit="".$Datum."", UserIP="$UserIP" where UserName = "$Username" AND UserAlter = "$useralter"";
Funktioniert sowohl mit Username Rudi, als auch rUdI :-)
Kann ich das ändern, wenn ich denn möchte?
Grüße
Rudi
Halihallo Rudi
$query = "update usertable set UserAktiv="1", UserLastvisit="".$Datum."", UserIP="$UserIP" where UserName = "$Username" AND UserAlter = "$useralter"";
Funktioniert sowohl mit Username Rudi, als auch rUdI :-)
Kann ich das ändern, wenn ich denn möchte?
http://www.mysql.com/doc/en/Case_Sensitivity_Operators.html
Viele Grüsse
Philipp
hi,
ich stelle gerade halb geschockt, halb amüsiert fest, daß einige meiner Abfragen in php/mysql nicht casesensitiv sind [...]
Funktioniert sowohl mit Username Rudi, als auch rUdI :-)
wenn du case-sensivity haben willst, benutze BLOB- statt TEXT-spalten.
(bei varchar o.ä. musst du allerdings wohl weiterhin auf den von Philipp genannten link zurückgreifen ...)
gruss,
wahsaga
Halihallo wahsaga
wenn du case-sensivity haben willst, benutze BLOB- statt TEXT-spalten.
Ich würde sagen, dass eben BLOB der falsche Datentyp wäre. BLOB
steht ja für "typenlose binäre Daten". Ein String hat sehr wohl
einen definierten Typ und der ist eben TEXT oder CHAR.
Ich halte für Texte und Strings immer noch die TEXT oder CHAR
Types für "verwanter", auch wenn man diese bei Case-Sensitivity
in den BINARY-Typ casten muss. Aber nur wegen dem auf BLOB's
umsteigen halte ich für etwas übertrieben (es gibt ja in dem Sinne
keinen grossen Nachteil, aber es ist zweckentfremdend).
Viele Grüsse
Philipp
hi,
Aber nur wegen dem auf BLOB's
umsteigen halte ich für etwas übertrieben (es gibt ja in dem Sinne
keinen grossen Nachteil, aber es ist zweckentfremdend).
na ja, für so "zweckentfremdet" würde ich sie gar nicht mal halten.
http://www.mysql.com/doc/de/BLOB.html (BLOB und TEXT werden hier übrigens vom manual auf _einer_ seite abgehandelt, sicher nicht ganz grundlos) sagt dazu:
"Die vier TEXT-Typen TINYTEXT, TEXT, MEDIUMTEXT und LONGTEXT entsprechen den vier BLOB-Typen und haben dieselben maximalen Längen und denselben Speicherbedarf. Der einzige Unterschied zwischen BLOB- und TEXT-Typen ist, dass beim Sortieren und Vergleichen bei BLOB-Werten Groß-/Kleinschreibung berücksichtigt wird, bei TEXT-Werten dagegen nicht. Mit anderen Worten ist ein TEXT ein BLOB ohne Berücksichtigung der Groß-/Kleinschreibung."
gruss,
wahsaga
Halihallo wahsaga
na ja, für so "zweckentfremdet" würde ich sie gar nicht mal halten.
Deine Argumentation ist natürlich richtig. Ich bin einfach gegen
diese BLOB's. Für mich sind das Datentypen für "höchst binäre" Daten,
wie z.B. ein Bild, ein Bitvektor, ein Sounddatei, ein Bitstring oder
Ähnlichem. Ein Text ist und bleibt für mich ein TEXT bzw. eine
Ansammlung von Characters => (VAR)CHAR. Ob man nun zu einem BINARY
casten muss oder nicht.
Ich schätze, ich nehme es hier wiedermal übergenau :-)
http://www.mysql.com/doc/de/BLOB.html (BLOB und TEXT werden hier übrigens vom manual auf _einer_ seite abgehandelt, sicher nicht ganz grundlos) sagt dazu:
Bestimmt ist es nicht grundlos, die Datentypen sind nämlich intern
_genau_ dasselbe, nur, dass der eine als BINARY gecastet wird und
der andere als CHAR; aber gespeichert werden sie beide _genau_
gleich.
Viele Grüsse
Philipp