做普通PHP项目转thinkphp时,字段自动完整匹配,ajax时前台数据一直取不到,后发现是select和find返回数据集有差异,参考下面方法修改。

$this->ajaxReturn($msg[0]); select返回的是二维数组,find返回一维数组。

thinkphp是比较好的php开发框架,能比较快速的开发MVC架构的管理系统,我们需要用到 select()和find()方法,两个方法都能返回数据集数组,但有什么不同呢?先看一下我的代码对比:

[php] view plain copy print?
  1. $tech=M('techlevel','HR_CS_','DB_CONFIG2');
  2. $Data=$tech->where('id=1')->find();
  3. dump($Data);
  4. $Data=$tech->where('id=1')->select();
  5. dump($Data);
$tech=M('techlevel','HR_CS_','DB_CONFIG2');
$Data=$tech->where('id=1')->find();
dump($Data);
$Data=$tech->where('id=1')->select();
dump($Data);

结果

[php] view plain copy print?
  1. array(6) {
  2. ["ID"] => int(1)
  3. ["TechLevel"] => string(2) "10"
  4. ["Remark"] => string(4) "��"
  5. ["CreateDate"] => string(19) "2013-03-14 15:14:38"
  6. ["CreateBy"] => string(5) "admin"
  7. ["ROW_NUMBER"] => string(1) "1"
  8. }
  9. array(1) {
  10. [0] => array(6) {
  11. ["ID"] => int(1)
  12. ["TechLevel"] => string(2) "10"
  13. ["Remark"] => string(4) "��"
  14. ["CreateDate"] => string(19) "2013-03-14 15:14:38"
  15. ["CreateBy"] => string(5) "admin"
  16. ["ROW_NUMBER"] => string(1) "1"
  17. }
  18. }
array(6) {["ID"] => int(1)["TechLevel"] => string(2) "10"["Remark"] => string(4) "��"["CreateDate"] => string(19) "2013-03-14 15:14:38"["CreateBy"] => string(5) "admin"["ROW_NUMBER"] => string(1) "1"
}array(1) {[0] => array(6) {["ID"] => int(1)["TechLevel"] => string(2) "10"["Remark"] => string(4) "��"["CreateDate"] => string(19) "2013-03-14 15:14:38"["CreateBy"] => string(5) "admin"["ROW_NUMBER"] => string(1) "1"}
}

从上面的代码可以看出,find()返回一个一维数组,select()返回一个二维数组,所以在取值时有所不同,一维数组取值用$data["TechLevel"],二维数组取值用$data[0]["TechLevel"],由于一开始没了解这个用法,调试一天也取不值,最后有dump方法才看到两个方法的不同所在!

转载于:https://www.cnblogs.com/xihong2014/p/5202215.html

thinkphp的select和find的区别(转)相关推荐

  1. select 和epoll模型区别

    1.select 和epoll模型区别 1.1.网络IO模型概述 通常来说,网络IO可以抽象成用户态和内核态之间的数据交换.一次网络数据读取操作(read),可以拆分成两个步骤:1)网卡驱动等待数据准 ...

  2. Select()和SelectMany()的区别

    Select与SelectMany的区别 Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值. Select() 为每个源值生成一个结果值.因此,总体结果是一个与源 ...

  3. mysql select count() count(1)_select count()和select count(1)的区别和执行方式讲解

    select count()和select count(1)的区别和执行方式讲解 发布时间:2020-09-06 13:26:14 来源:脚本之家 阅读:227 作者:CODETC 在SQL Serv ...

  4. select count(*) 和 select count(1) 以及 select count(column) 的区别

    考试,目的在于让自己明白,自己天天写的都是垃圾 select count(*) 和 select count(1) 以及 select count(column) 的区别 1.如果表沒有主键, 那么c ...

  5. IO多路复用select,poll epoll以及区别

    看这个一次读懂 Select.Poll.Epoll IO复用技术 文章来简单理解下,如果不是很明白的话,可以参考下面转的知乎上面白话文列子 作者:Leslie 链接:https://www.zhihu ...

  6. spark dataframe的select和selectexpr的区别

    对比: spark dataframe的select和selectexpr的区别 select是把要遍历的集合ienumerable逐一遍历,每次返回一个t,合并之后直接返回一个ienumerable ...

  7. Windows Phone 7 IEnumerableT.Select和SelectMany的区别

    IEnumerable<T>在Windows Phone 7的程序上很常用,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单迭代,下面主要分析一下 IEnumerabl ...

  8. 多路复用select和epoll的区别(转)

    先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法 一.问题引出 联系区别 问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一 ...

  9. IO模型(select, poll, epoll的区别和原理)

    参考<unix网络编程> 参考http://blog.csdn.net/blueboy2000/article/details/4485874 参考http://blog.csdn.net ...

最新文章

  1. Android OpenCV 边缘检测 Canny 的使用
  2. 解决Centos6.5虚拟机上网问题
  3. 定义和使用含有泛型的方法
  4. 我对CTO的理解 CTO要有技术魅力[转载]
  5. Netty : writeAndFlush的线程安全及并发问题
  6. 设置easyui input默认值
  7. OSSIM学习-英汉对照注释
  8. springMVC:后台传值并返回页面
  9. 面向太阳,不问春暖花开
  10. Ubuntu 12.04重启后丢失resolv.conf问题
  11. 【数学】高等数学中连续、可导、极限概念的随想
  12. excel 将科学计数法的格式换成文本
  13. 苹果mac电脑的end 键和home键在哪
  14. android实现号码归属地,Android手机号码归属地的查询
  15. 直角三角形面积Java_怎么用Java计算三角形的周长和面积
  16. 微信支付中的p12证书提取公钥、私钥、证书、序列号等
  17. 997. 找到小镇的法官_小镇...
  18. Flex 是什么? flex和flash是什么关系?(转)
  19. leetcode解题总览
  20. W3150A+评估板--EVB-PIC24用户手册(四)硬件设计指南

热门文章

  1. java for循环 嵌套for循环-标签使用
  2. jmeter存储http请求返回参数_Jmeter接口测试之HTTP请求默认值(八)
  3. 后端:Java 中 10 大坑爹功能!
  4. 数据库:SQLServer中in和 exists函数用法笔记
  5. 浅谈 SQL Server 内部运行机制
  6. 好好的活,简简单单过!
  7. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...
  8. python合法变量类型_Python 变量类型
  9. 配置树莓派linux的内核和编译并将镜像拷贝至树莓派
  10. Mybatis、使用注解的方式编写用户和角色一对多关系,并使用延迟加载