Tôi đã làm việc cho Zend và đặc biệt làm việc trên Zend_Db khá nhiều.
Không, không có hỗ trợ API nào cho ON DUPLICATE KEY UPDATE
cú pháp. Đối với trường hợp này, bạn chỉ cần sử dụng query()
và tự tạo câu lệnh SQL hoàn chỉnh.
Tôi không khuyên bạn nên nội suy các giá trị vào SQL như harvejs cho thấy. Sử dụng các tham số truy vấn.
Chỉnh sửa:Bạn có thể tránh lặp lại các tham số bằng cách sử dụng VALUES()
biểu thức.
$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");