在编写Thinkphp框架的项目时,使用M方法很方便,但有时使用where等方法生成sql语句时会失效,这与where的位置有关,是thinkphp3.2.3及以下版本的bug,举例:
如下代码不会生成where条件,
$where['id'] = $ID;
$arr_fields[] = 'name';
$arr_fields[] = 'name';
$t_cadre = M("XXX");
$list = $t_cadre->where($where)->field($arr_fields)->select();
修改如下,将where放到select前,将会生成where条件:
$where['id'] = $ID;
$arr_fields[] = 'name';
$arr_fields[] = 'name';
$t_cadre = M("XXX");
$list = $t_cadre->field($arr_fields)->where($where)->select();
仅作记录使用,避免大家走弯路。
|