Jag arbetade för Zend och arbetade specifikt med Zend_Db en hel del.
Nej, det finns inget API-stöd för ON DUPLICATE KEY UPDATE
syntax. I det här fallet måste du helt enkelt använda query()
och bilda den fullständiga SQL-satsen själv.
Jag rekommenderar inte att interpolera värden i SQL som harvejs visar. Använd frågeparametrar.
Redigera:Du kan undvika att upprepa parametrarna genom att använda VALUES()
uttryck.
$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");