T
ToM80
Guest
Moin,
ich habe mal wieder ein PHP Problem. Das Verhalten ist entweder merkwürdig oder ich sehe den Wald vor lauter Bäumen nicht.
Ich möchte Daten per prepared Statements in die DB einfügen. Das klappt soweit auch, nur dass immer der letzte Wert in alle Felder eingetragen wird
Hier mein Script:
Ich habe mir aus Sicherheit mal die foreach-Schleife fürs binding mitgeschrieben.
Hier kommt folgendes heraus:
Jedoch steht nun in der Datenbank in den vier Spalten (userName,userPass,userEmail,userRole) überall eine 3.
HINWEIS: Das Password, wird entgegen der o. g. ansicht verschlüsselt gespeichert, zur Verdeutlichung ist sicherlich obriges angenehmer zu lesen
Was mache ich falsch? Ich binde doch jedes ? mit dem korrekten Wert. Warum wird dennoch immer nur der letzte Wert bei allen Feldern eingetragen?
Vielen Dank schonmal für Eure Hilfe
ich habe mal wieder ein PHP Problem. Das Verhalten ist entweder merkwürdig oder ich sehe den Wald vor lauter Bäumen nicht.
Ich möchte Daten per prepared Statements in die DB einfügen. Das klappt soweit auch, nur dass immer der letzte Wert in alle Felder eingetragen wird
Hier mein Script:
PHP:
$tbl="tbl_user";
$setArr=array(
"userName"=>$params['userName'],
"userPass"=>$params['userPass'],
"userEmail"=>$params['userEmail'],
"userRole"=>$params['userRole']
);
$paramsArr=array(
"set"=>$setArr,
"table"=>$tbl
);
$sql=buildQuery("i", $paramsArr);
/* ANTWORT SQL:
INSERT INTO tbl_user (userName, userPass, userEmail, userRole) VALUES (?, ?, ?, ?)
*/
$q=$db->prepare($sql);
$e=1;
foreach ($paramsArr['set'] as $key => $value) {
$q->bindParam($e,$value);
$e++;
}
if ($q->execute()) {
return "succInsertUser1";
} else {
return "errInsertUser1";
}
Hier kommt folgendes heraus:
Code:
1=>Musterman
2=>test12
3=>muster@mann.de
4=>3
HINWEIS: Das Password, wird entgegen der o. g. ansicht verschlüsselt gespeichert, zur Verdeutlichung ist sicherlich obriges angenehmer zu lesen
Was mache ich falsch? Ich binde doch jedes ? mit dem korrekten Wert. Warum wird dennoch immer nur der letzte Wert bei allen Feldern eingetragen?
Vielen Dank schonmal für Eure Hilfe