Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę używać ON DUPLICATE KEY UPDATE w PDO z mysql?

Możesz użyć VALUES() MySQL funkcja:

Dlatego w Twoim przypadku:

ON DUPLICATE KEY UPDATE expiry = VALUES(expiry)

Alternatywnie możesz utworzyć czwarty parametr, z którym powiążesz $expiry ponownie:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć indeks w części daty pola DATETIME w MySql?

  2. Utwórz nową bazę danych za pomocą MySQL Workbench

  3. Nie można połączyć:Utracono połączenie z serwerem MySQL podczas „odczytu początkowego pakietu komunikacyjnego”, błąd systemu:0

  4. Dlaczego AES_DECRYPT zwraca wartość null?

  5. MySQL Group_Concat() a T-SQL String_Agg()