#1 dhs789520
最近做小网站,遇到自行增加数据库变量值因为两个字段都需要同时增加或减少
sql代码学的不精
看到incfField觉得很好用,只是不支持多字段同时增加
分两步走觉得效率又低
所以想改框架spModel中的 incrField功能
spClass('db_xx)->incrField($condition,array('id','times','total'));//同时增加多个字段
修改代码如下:
public function incrField($conditions, $field, $optval = 1)
{
$where = "";
if(is_array($conditions)){
$join = array();
foreach( $conditions as $key => $condition ){
$condition = $this->escape($condition);
$join[] = "{$key} = {$condition}";
}
$where = "WHERE ".join(" AND ",$join);
}else{
if(null != $conditions)$where = "WHERE ".$conditions;
}
//对字段参数进行判断,分别处理
if(is_array($field)){
foreach($field as $key => $value){//因为对php的数组操作不熟,只会用key=>value,还是抄框架里的代码,呵呵
$vals[] = "{$value} = {$value} + {$optval}";
}
$values = join(", ",$vals);
}else{
$values = "{$field} = {$field} + {$optval}";
}
jake老大,你看这样改可行?
2011-04-27 11:57:31