PHP的TP框架数据库查询细节

数据库查询结果的各种差异及空判断:

find():

select方法获取的是一个一维数组,以字段名为索引。
查询不到时为null: (此时判断为空用list !=''或!==null)


图片.png

field列表出现聚合函数且查询不到 (此时判断为空用list[max] !=''或!==null)


图片.png
select():

select方法获取的是一个二维数组,底层一维数组以字段名为索引(字段名:字段值)。
查询不到时为不存在(未定义,前端无此传值也是) (此时判断为空用 empty(list)或):


图片.png

field列表出现聚合函数且查询不到


图片.png
getfield与field+select的区别():

getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,现将该方法的用法总结如下:
getfield详解:http://www.jb51.net/article/51330.htm

重点:

1,如果getField方法传入多个字段名称的话,默认返回一个关联数组,以第一个字段的值为索引(所/以第一个字段要尽量选择不会重复的)(字段值1:字段值2)。
2,只获取1个字段时,返回的是一个字符串结果。也就是说,即使有满足条件的多个字段,也只会返回一个结果。
3,只获取2个字段时,返回的是一个一维数组结果。也就是说,即使有满足条件的多个重复字段,也只会返回一个结果,后查询出的字段值代替先查询的字段值。
4,如果传入了2个以上的字段名,则返回一个二维数组(类似select方法的返回值,区别在于索引是二维数组的键名是第一个字段的值)

image.png
另外:

当field列表出现聚合函数(min,max,,,sum('字段1+字段2'))时find与select中field只能指定一个字段:


图片.png

如果是!==(绝对不等于时),null与''不相等,而!=时,相同,empty时,null,' ',0 均成立

你可能感兴趣的:(PHP的TP框架数据库查询细节)