Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да използвам ON DUPLICATE KEY UPDATE в PDO с mysql?

Можете да използвате VALUES() на MySQL функция:

Следователно във вашия случай:

ON DUPLICATE KEY UPDATE expiry = VALUES(expiry)

Като алтернатива можете да създадете четвърти параметър, към който да свържете $expiry отново:

$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. Единичен модел на Django, множество таблици?

  2. Извличане на данни от MySQL база данни в html падащ списък

  3. Как да накарате Sequelize да използва имена на таблици в единствено число

  4. Какво е динамичен SQL?

  5. изберете 1 произволен ред със сложно филтриране