Работих за Zend и по-специално работих по Zend_Db доста малко.
Не, няма поддръжка на API за ON DUPLICATE KEY UPDATE
синтаксис. В този случай трябва просто да използвате query()
и сами формирайте пълния SQL оператор.
Не препоръчвам интерполиране на стойности в SQL, както показва harvejs. Използвайте параметри на заявката.
Редактиране:Можете да избегнете повтарянето на параметрите, като използвате VALUES()
изрази.
$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");