Ik heb voor Zend gewerkt en specifiek veel aan Zend_Db gewerkt.
Nee, er is geen API-ondersteuning voor de ON DUPLICATE KEY UPDATE
syntaxis. In dit geval moet u gewoon query()
. gebruiken en vorm zelf het volledige SQL-statement.
Ik raad niet aan om waarden in de SQL te interpoleren, zoals harvejs laat zien. Gebruik queryparameters.
Bewerken:U kunt voorkomen dat de parameters worden herhaald door VALUES()
. te gebruiken uitdrukkingen.
$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");