Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在CodeIgniter中将此PDO语句转换为活动记录查询?_Php_Codeigniter_Activerecord - Fatal编程技术网

Php 如何在CodeIgniter中将此PDO语句转换为活动记录查询?

Php 如何在CodeIgniter中将此PDO语句转换为活动记录查询?,php,codeigniter,activerecord,Php,Codeigniter,Activerecord,我有一个PDO语句可以正常工作,但如何在CodeIgniter中将其转换为活动记录 我的PDO声明是: UPDATE mytable set total=bought+re_order-balance where retail_id=? and stock=? and stock_date=? 我试过这个,但没有成功: $data=array(

我有一个PDO语句可以正常工作,但如何在CodeIgniter中将其转换为活动记录

我的PDO声明是:

UPDATE mytable set total=bought+re_order-balance where retail_id=? and stock=? and stock_date=?
我试过这个,但没有成功:

$data=array(                                                                                            
                    //some other fields
                    'total'=>'bought' + 're_order' - 'balance'                      
                    );

                $this->db->where('retail_id', $someid);
                $this->db->where('stock', $somestock);
                $this->db->where('stock_date', $somestock);
                $this->db->update('mytable',$data); 

当我尝试此操作时,它同时没有给出任何错误,也没有更新数据库中的total字段。请帮忙。谢谢。

下面的代码应该可以生成所需的查询。
set()
方法的第三个参数阻止数据转义。你可以在报纸上读到更多关于它的内容


下面的代码应该构建所需的查询。
set()
方法的第三个参数阻止数据转义。你可以在报纸上读到更多关于它的内容


是购买、重新排序和平衡字符串还是数字?它们都是整数。它们也是同一个表中的所有字段。因此,`$data=array('total'=>($bunded+$reorder-$balance))更适合。目前,您正在尝试对Strings进行计算,因此我更希望确保使用表的唯一ID进行更新,上面的where语句是否使用表的唯一ID?除了添加之外,其他所有操作都正常。我认为这个解决方案行不通,它是一个数据库字段,放一个“$”使它看起来像是一个变量。是购买、重新排序和平衡字符串还是数字?它们都是整数。它们也是同一个表中的所有字段。因此,`$data=array('total'=>($bunded+$reorder-$balance))更适合。目前,您正在尝试对Strings进行计算,因此我更希望确保使用表的唯一ID进行更新,上面的where语句是否使用表的唯一ID?除了添加之外,其他所有操作都正常。我认为这个解决方案行不通,它是一个数据库字段,放一个“$”使它看起来像一个变量。
$this->db->set('total', 'bought + re_order - balance', FALSE)
            ->where('retail_id', $someid)
            ->where('stock', $somestock)
            ->where('stock_date', $somestock)
            ->update('mytable');