从代码点火器框架中的SQL查询中减去一个数字

时间:2018-01-01 19:48:13

标签: php

我想知道如何从数据库中的字段中减去1 我尝试了以下但它只是将其设置为“-1”,实际上并没有减去它。

  <img src='images/upload/'{{$article->image_file}}>

2 个答案:

答案 0 :(得分:1)

您的代码在数据库中插入-1,因为在PHP中,"cases" - 1的计算结果为-1

试试echo ("any_string"-1);。请阅读String conversion to numbers了解详情。

在CodeIgniter中,您不能使用您直接使用的函数$this->db->update的格式来实现此查询,因为update函数会转义传递给它的所有值。

但是,您可以使用以下代码来实现相同的功能。

//Passing false as third parameter turns off escaping
$this->db->set('cases', 'cases - 1', false);
$this->db->where('id', $id); //Your where condition
$this->db->update('listings');

或者,您可以手动编写查询并使用query函数。

$sql = "UPDATE `listings` SET `cases` = `cases` - 1 WHERE [your where condition]";
$this->db->query($sql);

答案 1 :(得分:1)

$this->db->set('cases','`cases`-1',FALSE);
$this->db->where('id', $id);/*whatever condition you want*/
$this->db->update('yourtablename');

这里有来自codeigniter用户指南的链接: https://codeigniter.com/user_guide/database/query_builder.html