Hey dedlfix,
$sql = "INSERT INTO tabelle (id, ...) VALUES ( MD5(:paramA.:paramB), ...)";
Ein . ist kein Operator in MySQL. Er wird nur für Bezeichner-Qualifizierungen verwendet.
danke, das ist mir bekannt. Ich hab's einfach nur noch ohne Nachzudenken mit "try and error" versucht, weil ich einfach keine Lust mehr hatte.
Der MD5-Hash ist der gleiche, egal ob ich die Variablen an Parameter binde oder ob ich die Werte direkt ins SQL-Statement schreibe.
Bei welcher Operation genau und wie lautet der Hash? Das Ergebnis von MD5(0) und MD5('foo' + 'bar') ist übrigens beides Mal cfcd208495d565ef66e7dff9f98764da. Kannst du dir denken warum?
Ja! Und danke, dass Ihr mich auf den richtigen Weg gebracht habt. Wie ich in meiner anderen Antwort schon geschrieben habe war ich einfach zu blöd das zu erkennen.
Auch wenn ich die CONCAT-Funktion
$sql = "INSERT INTO tabelle (id, ...) VALUES ( MD5( CONCAT(:paramA, :paramB)), ...)";
nehme ergibt das den gleichen Hash.Es müssen dann aber auch bei unterschiedlichen angebunden Wert verschiedene Hashes entstehen.
Das hat es auch. Hab mich da wohl falsch ausgedrückt. Ich meinte, "CONCAT(:paramA, :paramB)" und ":paramA :paramB" ergeben bei gleichen Parametern den gleichen Wert.
Gruß, Dennis