在insert_batch
中有执行任何方法的方法,如果密钥已经存在,请在代码点火器3 HMVC中更新该行?
我浏览了文档,仅发现了insert_batch和update_batch,并从一些旧的讨论中找到了,但是当我在HMVC上运行时,使用Codeigniter 2也是行不通的。
如何使用活动记录中的重复键更新行(MySQL查询:重复键更新)?如果无法在insert_batch中插入或更新一行,会发生什么?所有插入失败还是仅插入该行?
谢谢。
答案 0 :(得分:0)
这可以为您提供帮助
public function updateduplicatebatch($table, $data ) {
if (empty($table) || empty($data)) return false;
$duplicate_data = array();
foreach($data AS $key => $value) {
$duplicate_data[] = sprintf("%s='%s'", $key, addslashes($value));
}
$sql = sprintf("%s ON DUPLICATE KEY UPDATE %s", $this->db->insert_string($table, $data), implode(',', $duplicate_data));
$this->db->query($sql);
return $this->db->insert_id();
}
你的举止应该像
$data = array('name' => $name, 'phone' => $phone, 'age' => $age);