来源:http://www.liuhai.org/sql-set-key-case-when-then
function save_category_district($parame,$id){ if(!is_array($parame) || !is_array($id)) return false; $sql=update .table.'category_district'.' set '; foreach($parame as $key=>$val){ $csql.=$key.'=case id'; foreach($parame[$key] as $key=>$val){ $csql.= when {$id[$key]} then '{$val}'; //注意这里id的key必须和要更新数据的key相同,就是表单里出来的数字键 } $csql.=' end,'; } $sql.=rtrim($csql,','); //这一步就是为了去除最后一个end后的逗号 $id=implode(',',$id); //id在这里变为字符串 $sql.= where id in ({$id}); if(!$this->mydb->query($sql)) return false; return true; }
复制代码