Mysql
 sql >> Base de données >  >> RDS >> Mysql

Existe-t-il un moyen de faire une INSERT...ON DUPLICATE KEY UPDATE dans Zend Framework 1.5 ?

J'ai travaillé pour Zend et plus particulièrement sur Zend_Db.

Non, il n'y a pas de prise en charge de l'API pour la ON DUPLICATE KEY UPDATE syntaxe. Pour ce cas, vous devez simplement utiliser query() et formez vous-même l'instruction SQL complète.

Je ne recommande pas d'interpoler les valeurs dans le SQL comme le montre harvejs. Utilisez les paramètres de requête.

Edit :Vous pouvez éviter de répéter les paramètres en utilisant VALUES() expressions.

$sql = "INSERT INTO sometable (id, col2, col3) VALUES (:id, :col2, :col3)
  ON DUPLICATE KEY UPDATE col2 = VALUES(col2), col3 = VALUES(col3)";

$values = array("id"=>1, "col2"=>327, "col3"=>"active");