database - CakePHP:使用 save() 添加/减去?

标签 database cakephp php

我试图通过 Cake 的 save() 函数简单地执行以下操作。

UPDATE user SET value = value-1

不过好像只能设置。它不会理解我传递给它的任何递增或递减的内容,而且互联网上似乎没有人遇到过这个问题。 :P 即使在浏览基于 CakePHP 2.0 构建的完整软件时,我也发现 $this->query() 用于增量更新!如果我还没有要设置的值,我真的会这样更新吗?

(出现代码如下)

 $data = array('id' => uid, 'value' => "Users.value = Users.value - 1");
 $this->User->save($data);

最佳答案

CakePHP 数据库产生自增自减的代码如下:

$this->User->updateAll(array('value' => 'value - 1'), array('id' => uid));

Arun 的回答不正确;您必须将 - 1 放在引号内才能让 Cake 识别它是查询的一部分。否则它将尝试将所有 User.value 设置为 -1。 注意您必须将要更新的列的信息(标识符)放在第二个条件中。

关于database - CakePHP:使用 save() 添加/减去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883470/

相关文章:

javascript - 使用 jquery helper 将 $(this) 传递到 CakePHP 样式的脚本中

php - 我如何知道 date_diff 持续时间是多少?

javascript - 如何使用 DOM HTML javascript 或 PHP 函数从 html 页面恢复数据?

php - 定义 MySQL 关系的最佳方式

php - 在 mysqli 和 php 中与表 2 连接时从表 1 中获取不同的记录

cakephp - 找到试图创建目录的用户

php - 循环查询和查找表。 MySQL 和 PHP

mysql - Web 应用程序无法连接到数据库

mysql - 使用命令行将 my.cnf 文件复制到 Mysql 目录

CakePHP分页助手: get current page