Jeg arbejdede for Zend og arbejdede specifikt på Zend_Db en del.
Nej, der er ingen API-understøttelse for ON DUPLICATE KEY UPDATE
syntaks. I dette tilfælde skal du blot bruge query()
og form selv den komplette SQL-sætning.
Jeg anbefaler ikke at interpolere værdier i SQL'en, som harvejs viser. Brug forespørgselsparametre.
Rediger:Du kan undgå at gentage parametrene ved at bruge VALUES()
udtryk.
$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");