Php 如何在codeigniter中使用插入或替换

Php 如何在codeigniter中使用插入或替换,php,mysql,codeigniter,Php,Mysql,Codeigniter,如果数据不存在,则将插入,否则存在的数据将被替换 检查唯一数据字段以检查记录存在的位置 如果您使用的是CodeIgniter v3.0.x,那么您所需要的只是它编译并执行一个REPLACE语句。(关于MySQL的文档) 诀窍是在$data数组中包含表的键字段($id)。然后只需将一个参数传递给save() 我承认,我不确定调用update()后,insert\u id()是否会返回任何内容。速记: public function save($data) { $this->db

如果数据不存在,则将插入,否则存在的数据将被替换

检查唯一数据字段以检查记录存在的位置


如果您使用的是CodeIgniter v3.0.x,那么您所需要的只是它编译并执行一个REPLACE语句。(关于MySQL的文档)

诀窍是在
$data
数组中包含表的键字段(
$id
)。然后只需将一个参数传递给
save()

我承认,我不确定调用
update()
后,
insert\u id()
是否会返回任何内容。

速记:

 public function save($data)
  {
    $this->db->replace($this->table, $data);
    return $this->db->insert_id();
  }

您是否将其作为静态返回调用,因为从函数中,您需要进行self::调用
public function save($data, $id)
{
    $query = $this->db->query("SELECT * FROM table_name WHERE id = '{$data['id']}' ");
    $result = $query->result_array();
    $count = count($result);

    if (empty($count)) {

        $this->db->insert('mytable', $data); 
    }
    elseif ($count == 1) {
        $this->db->where('id', $data['id']);
        $this->db->update('mytable', $data); 
    }
}
 public function save($data)
  {
    $this->db->replace($this->table, $data);
    return $this->db->insert_id();
  }
$db_action = !(empty)$this->db->get_where($this->table, array('id', $id)) ? $this->db->insert($this->table, $data) : $this->db->where('id', $id)->update($this->table, $data);