Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDO Vorbereitete Anweisung Innerhalb einer Klasse

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.