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

パラメータ番号が無効です。重複更新のPDOが失敗します

    @CertaiNが言及し、本物 エミュレートされていないものを準備します。同じ変数を同じ名前で複数回バインドすることはできません。別の名前でバインドすることもできますが、このクエリでは必要ありません。 VALUES() 関数は挿入されたはずの値を返します 、このクエリを作成します:

        $sql = 'INSERT INTO users_meta
             (user_id,meta_key,meta_value)
           VALUES (:user_id,:meta_key,:meta_value)
           ON DUPLICATE KEY
           UPDATE meta_value = VALUES(meta_value)';
    

    また、必要に応じて、次のように、より多くの列に使用できます。

        $sql = 'INSERT INTO users_meta
             (user_id,meta_key,meta_value)
           VALUES (:user_id,:meta_key,:meta_value)
           ON DUPLICATE KEY
           UPDATE 
             meta_value = VALUES(meta_value),
             meta_key = VALUES(meta_key)';
    


    1. mySQLのクロス集計ビュー?

    2. MS-Accessの基本クラスと派生オブジェクト

    3. IDの文字列を返すサブクエリを使用してWHEREIDINを実行します

    4. SQLite Intersect