PDOのバインディング機能を正しく使用していません。次のようなことをする必要があります:
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
));
}
まず、バインドする文字列全体をバインド配列のキーに入れる必要があります。したがって、':id'
を配置します 'id'
ではなく 。また、$table
の場合は、変数をクエリに直接入れていました。 および$value
、しかし、それらを互いにバインドしようとしますが、これは意味がありません。
編集:テーブルと列名はPDOを使用してバインドできません。