踩坑TP5 - SELECT获取多条数据,会返回数组或数据集对象

2019-01-23 PHP 2138

问题描述

使用数据库构造器获取多条记录时,根据查询结果是否为空,进行特殊处理
// 错误的判断方式
if($list){
	//如果获取到多条记录,则执行
}

TP手册

  • 数据库构造器查询方式

数据库查询方式

  • 模型类内使用数据库构造器查询方式

模型类内部查询方式

代码

  • 模型类 AModel.php

    class AModel extends Model{
    	static public function getAList(){
    		return  DB::name('table')->select();
    	}
    }

  • 控制器类AController.php

    class AController{
    	public function get_list(){
    		$list1 = AModel::getAlist();
    		$list2 = DB::name('table')->select();
    		//错误的判断方式,$list1为数据集对象,if永远为真
    		if($list1){}
    		//可行的判断方式
    		if(!count($list1)){}
    		if($list1->isEmpty()){}
    		if(!$list1->toArray()){}
    		//可行的判断方式
    		if($list2){}
    	}
    }

0