sql >> データベース >  >> RDS >> Mysql

クラス内のPDOプリペアドステートメント

    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を使用してバインドできません。




    1. Mgt開発環境でmysqlを起動できません

    2. 複数の列を持つMySQLカーソルベースのページネーション

    3. PHPを使用してMYSQLデータベースにアラビア語を保存できません

    4. Zend_Dbのフィールドによる順序値