Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine Möglichkeit, ein INSERT...ON DUPLICATE KEY UPDATE in Zend Framework 1.5 durchzuführen?

Ich habe für Zend gearbeitet und insbesondere ziemlich viel an Zend_Db gearbeitet.

Nein, es gibt keine API-Unterstützung für ON DUPLICATE KEY UPDATE Syntax. Für diesen Fall müssen Sie einfach query() verwenden und bilden Sie das komplette SQL-Statement selbst.

Ich empfehle nicht, Werte in die SQL zu interpolieren, wie harvejs zeigt. Verwenden Sie Abfrageparameter.

Bearbeiten:Sie können vermeiden, die Parameter zu wiederholen, indem Sie VALUES() verwenden Ausdrücke.

$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");