我想在Zend Framework 1.5中使用ON DUPLICATE KEY UPDATE,这可能吗?

实例

INSERT INTO sometable (...)
VALUES (...)
ON DUPLICATE KEY UPDATE ...

推荐答案

我为Zend工作,特别是为Zend_Db工作了不少.

不,ON DUPLICATE KEY UPDATE语法没有API支持.在这种情况下,您只需使用query()并自己形成完整的SQL语句.

我不建议像harvejs所显示的那样在SQL中插入值.使用查询参数.

编辑:使用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");

Mysql相关问答推荐

在mySQL中使用子查询和WHERE子句的JOIN

正则表达式转换为MYSQL格式

根据当前表列的值,从SQL中的另一个表中获取数据

如果我有USER列,如何将SQL CREATE TABLE与PostgreSQL和MySQL一起使用?

警告:MYSQL_OPT_RECONNECT 已弃用

如何分解分组依据的数据?

模拟Mysql Cursor类的fetchone()方法,并将其返回值设置为None

Select 不同的列,其中另一列不包含特定值

一次更新mysql中的多个列

Mysql Pivot 查询/建议

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

Select 在同一天售出不同活动门票的收银员

查询以查找可用时隙

PHP,MySQL 错误:列计数与第 1 行的值计数不匹配

在 MySQL 中,我应该 Select 哪种排序规则?

PDO:MySQL 服务器已消失

Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?

如何将 MySQL 5.7 更新到新的 MySQL 8.0?

将 Blob 转换为字节数组的最简单方法

如何将本地托管的 MySQL 数据库与 docker 容器连接