我使用codeigniter my_model类来更新我的表数据。
Actulay我需要查询
`UPDATE `pay_project` SET `awarded` = '129' WHERE `pay_id` = 1 and `status` ='y'
为此,我尝试了codeignter my_model function update
$this->pay_project_model->update_by(array('pay_id'=>1,'status'=>'y'),$updateJob);
但代码无法正常工作,如果我正在尝试更新()而不是update_by(),那么它显示为
`UPDATE `pay_project` SET `awarded` = '129' WHERE 'id'=array()
请帮帮我解决这个问题?我也尝试使用update_many(),同样不起作用..
使用的模型是 https://github.com/jamierumbelow/codeigniter-base-model
答案 0 :(得分:3)
尝试使用此Active Record,它会让您知道自己在做什么以及查询
function update($data = array(), $where = '') {
$where = array('pay_id'=>1,'status'=>'y');
$data = array('awarded' => '129');
$this->db->where($where);
$res = $this->db->update($this->main_table, $data);
$rs = $this->db->affected_rows();
return $rs;
}
答案 1 :(得分:2)
以下是模型函数中需要的查询。
class my_model extends CI_Model {
function __construct(){
parent::__construct();
}
/*Model function*/
function update_by($condition = array(),$updateJob=array())
{
if($condition && $updateJob)
{
$this->db->where($condition);
$this->db->update('pay_project', $updateJob );
}
}
}
现在,您可以将控制器中的现有代码用于所需目的。
$updateJob = ['awarded' => '129'];
$this->pay_project_model->update_by(array('pay_id'=>1,'status'=>'y'), $updateJob);
答案 2 :(得分:2)
使用此codeigniter活动记录进行数据库操作
$data = array(
'awarded' => '129'
);
$where = array(
'pay_id'=>1,
'status'=>'y'
);
$this->db->where($where);
$this->db->update('pay_project', $data);
有关文档,请参阅此链接 codeigniter active records update
答案 3 :(得分:0)
使用此
$query = $this->db->query("UPDATE pay_project SET awarded = '129' WHERE pay_id = '1' and status ='y' ");
$result = $query->result_array();
return $result;
答案 4 :(得分:0)
如果您正在使用Codeigniter My_model类,那么您需要像这样更改模型以使用update_by()函数
class Pay_project_model extends MY_Model {
protected $table='pay_project';
function update_by($where = array(),$data=array())
{
$this->db->where($where);
$query = $this->db->update($this->table,$data);
return $query;
}
}
在My_model类中没有默认选项来通过多个where条件更新类,所以你需要编写update_by()函数。简单的复制粘贴你的类中的函数,这将是完美的工作。