Sie verwenden die Bindungsfunktion von PDO nicht ganz richtig. Sie sollten etwa wie folgt vorgehen:
public function update($table, $key, $value, $id) {
$stmt = $this->conn->prepare(
"UPDATE $table SET $key = :value WHERE id = :id"
);
return $stmt->execute(array(
':value' => $value,
':id' => $id
));
}
Zuerst müssen Sie die gesamte zu bindende Zeichenfolge in den Schlüssel des Bindungsarrays einfügen. Sie setzen also ':id'
ein statt 'id'
. Außerdem haben Sie die Variablen im Fall von $table
direkt in die Abfrage eingefügt und $value
, aber dann versucht, sie aneinander zu binden, was keinen Sinn ergibt.
Bearbeiten:Tabellen- und Spaltennamen können nicht mit PDO gebunden werden.