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