thinkphp如何查询数据库

发布时间 - 2019-08-23 00:00:00    点击率:

thinkphp如何查询数据库?

数据库查询

ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作。

查询条件可以用于CURD等任何操作,作为where方法的参数传入即可。

ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。

查询方式

一、使用字符串作为查询条件

这是最传统的方式,但是安全性不高,例如:

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();

最后生成的SQL语句是

SELECT * FROM think_user WHERE type=1 AND status=1

二、使用数组作为查询条件

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
 // 把查询条件传入查询方法
$User->where($condition)->select();

最后生成的SQL语句是

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1

如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
 // 把查询条件传入查询方法
$User->where($condition)->select();

最后生成的SQL语句是

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'

 

三、使用对象方式来查询 (这里以stdClass内置对象为例)

$User = M("User"); // 实例化User对象
 // 定义查询条件
$condition = new stdClass(); 
$condition->name = 'thinkphp'; 
$condition->status= 1; 
$User->where($condition)->select();

最后生成的SQL语句和上面一样

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1

使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法。

表达式查询

上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:

$map['字段名'] = array('表达式','查询条件');

表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

 

$map['id']  = array('eq',100);  id = 100;
 $map['id']  = array('egt',100);id >= 100
 $map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询
 $map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

 本文来自ThinkPHP框架技术文章栏目:http://www./phpkj/thinkphp/


# thinkphp  # 为例  # 多字  # 是一个  # 这是  # 推荐使用  # 不高  # 几种  # 可以使用  # 不分  # 会以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Java垃圾回收器的方法和原理总结  如何快速登录WAP自助建站平台?  简历在线制作网站免费版,如何创建个人简历?  HTML 中动态设置元素 name 属性的正确语法详解  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  敲碗10年!Mac系列传将迎来「触控与联网」双革新  JavaScript如何实现路由_前端路由原理是什么  免费视频制作网站,更新又快又好的免费电影网站?  Laravel怎么实现验证码(Captcha)功能  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  再谈Python中的字符串与字符编码(推荐)  利用JavaScript实现拖拽改变元素大小  Laravel中的Facade(门面)到底是什么原理  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  文字头像制作网站推荐软件,醒图能自动配文字吗?  韩国服务器如何优化跨境访问实现高效连接?  如何快速生成可下载的建站源码工具?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  SQL查询语句优化的实用方法总结  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  java获取注册ip实例  java ZXing生成二维码及条码实例分享  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  太平洋网站制作公司,网络用语太平洋是什么意思?  Linux网络带宽限制_tc配置实践解析【教程】  南京网站制作费用,南京远驱官方网站?  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  ,在苏州找工作,上哪个网站比较好?  如何快速搭建安全的FTP站点?  网站建设保证美观性,需要考虑的几点问题!  如何快速查询网址的建站时间与历史轨迹?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何在云虚拟主机上快速搭建个人网站?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何快速建站并高效导出源代码?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  教学论文网站制作软件有哪些,写论文用什么软件 ?  打造顶配客厅影院,这份100寸电视推荐名单请查收  Android仿QQ列表左滑删除操作  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?