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

mysqlを使用してPDOでONDUPLICATEKEY UPDATEを使用するにはどうすればよいですか?

    MySQLの VALUES()を使用できます 機能:

    したがって、あなたの場合:

    ON DUPLICATE KEY UPDATE expiry = VALUES(expiry)
    

    または、$expiryをバインドする4番目のパラメーターを作成することもできます。 もう一度:

    $sql = "INSERT INTO $table (user_id, licence, expiry)
                            VALUES (
                            :user_id,
                            :licence,
                            :expiry)
        ON DUPLICATE KEY UPDATE expiry = :another";
    
    
    try {
        $dbh = new PDO('login info here');
        $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $stmt = $dbh->prepare($sql);
        $stmt->bindParam(':user_id', $userID , PDO::PARAM_INT);
        $stmt->bindParam(':licence', $licence, PDO::PARAM_STR);
        $stmt->bindParam(':expiry' , $expiry , PDO::PARAM_STR);
        $stmt->bindParam(':another', $expiry , PDO::PARAM_STR);
        $stmt->execute();
        // etc.
    


    1. postgresで最大接続数を増やす方法は?

    2. Windowsにmysql-python(新しいバージョン)をインストールできません

    3. PG列をNULLABLETRUEに変更するにはどうすればよいですか?

    4. グループごとに1列の最大値を持つ行を返します