thinkphp는 MVC 아키텍처 관리 시스템을 빠르게 개발할 수 있는 비교적 좋은 PHP 개발 프레임워크입니다. 두 메소드 모두 데이터 세트 배열을 반환할 수 있지만 차이점은 무엇입니까? 옷감? 먼저 내 코드 비교를 살펴보겠습니다.
$tech=M('techlevel','HR_CS_','DB_CONFIG2');
$Data=$tech->where( 'id =1')->find();
dump($Data);
$Data=$tech->where('id=1')-> select( );
dump($Data);
결과
array(6){
["ID"]=>int( 1)
["TechLevel"]=>string(2)"10"
["Remark"]=>string(4)"�"
[ "CreateDate"]=>string(19)"2013-03-1415:14:38"
["CreateBy"]=>string(5)"admin"
[ "ROW_NUMBER"]=>string(1)"1"
}
배열(1){
[0]=> ; 배열(6){
["ID"]=>int(1)
["TechLevel"]=>string(2)"10"
["Remark"]=>string(4)"�"
["CreateDate"]=>string(19)"2013-03-1415:14:38"
["CreateBy"]=>string(5)"admin"
["ROW_NUMBER"]=>string(1)"1"
}
}
위 코드에서 알 수 있듯이 find()는 1차원 배열을 반환하고 select()는 2차원 배열을 반환하므로 1차원 배열의 경우 값에 차이가 있습니다. $data ["TechLevel"]를 사용하고, $data[0]["TechLevel"]을 사용하여 2차원 배열의 값을 가져옵니다. 처음에는 이 사용법을 이해하지 못했기 때문에 한동안 디버깅할 가치가 없었습니다. 마지막으로 두 가지 방법의 차이점을 알아보기 위해 dump 방법을 사용했습니다.
또한
$Model=M();
$sql='selectroleidfrom'.C("DB_PREFIX").'adminwhereuserid='.session(' userid ').'';
$list=$Model->query($sql);
//작성방법 1
foreach( $listas&$info){
if(info['roleid']=='1'){
}
// 작성 방법 2
if($list[0]['roleid']=='1'){
}
thinkphp의 원래 sql 철자, 결과는 다음과 같습니다. 2차원 배열