拽拽
管理员组

kongphp框架 db底层 arr2where 修复 in多条件查询

private function arr2where($arr) {

$s = '';

if(!empty($arr)) {

foreach($arr as $key=>$val) {

if(is_array($val)) {

foreach($val as $k=>$v) {

if(is_array($v)) {

if($k === 'IN' && $v) {

$s .= '(';

foreach($v as $i) {

$i = addslashes($i);

$s .= "$key='$i' OR "; // 走索引时,OR 比 IN 快

}

$s = substr($s, 0, -4).') AND ';

}

}else{

$v = addslashes($v);

if($k === 'LIKE') {

$s .= "$key LIKE '%$v%' AND ";

}else{

$s .= "$key$k'$v' AND ";

}

}

}

}else{

$val = addslashes($val);

$s .= "$key='$val' AND ";

}

}

$s && $s = ' WHERE '.substr($s, 0, -5);

}

return $s;

}


#1楼
发帖时间:2015-9-14   |   查看数:0   |   回复数:0
游客组