sql >> Databáze >  >> RDS >> Mysql

CHOP Připravené prohlášení Uvnitř třídy

Funkci vazeb PDO nepoužíváte zcela správně. Měli byste udělat něco jako následující:

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
    ));
}

Nejprve musíte vložit celý řetězec, který má být svázán, do klíče pole vazeb. Takže vložíte ':id' spíše než 'id' . Také jste vkládali proměnné přímo do dotazu v případě $table a $value , ale pak se je pokoušet svázat k sobě, což nedává smysl.

Upravit:tabulky a názvy sloupců nelze svázat pomocí PDO.




  1. Obnovení smazané databáze mysql

  2. #1055 - Výraz seznamu SELECT není v klauzuli GROUP BY a obsahuje neagregovaný sloupec, což není kompatibilní s sql_mode=only_full_group_by

  3. Seskupit po týdnech v MySQL

  4. Umí to spouštěče SQL CLR? Nebo existuje lepší způsob?