sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag använda ON DUPLICATE KEY UPDATE i PDO med mysql?

Du kan använda MySQL:s VALUES() funktion:

Därför, i ditt fall:

ON DUPLICATE KEY UPDATE expiry = VALUES(expiry)

Alternativt kan du skapa en fjärde parameter som du binder $expiry till igen:

$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. LEFT() vs SET TEXTSIZE i SQL Server:Vad är skillnaden?

  2. Oracle-databasanslutning i web.config asp.net

  3. Hur man ställer in värdet på det sammansatta variabelfältet med hjälp av dynamisk SQL

  4. Välj senaste posten från höger tabell när du använder join i mysql