dedlfix: PDO und verkettete Parameter

Beitrag lesen

Hi!

$sql = "INSERT INTO tabelle (id, ...) VALUES ( MD5(:paramA.:paramB), ...)";

Ein . ist kein Operator in MySQL. Er wird nur für Bezeichner-Qualifizierungen verwendet.

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?

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.

Lo!