文档章节

ThinkPHP 表达式

ywppengpeng
 ywppengpeng
发布于 2016/11/21 14:04
字数 624
阅读 18
收藏 1

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

ThinkPHP 表达式

这里说的表达式,是指 ThinkPHP 框架中特有的表达式。这些表达式用于查询或更新删除等操作的 where条件 及模板标签中。

Where 条件中使用表达式

Where 条件表达式格式为:

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

其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:

ThinkPHP运算符 与 SQL运算符 对照表
TP运算符 SQL运算符 例子 实际查询条件
eq = $map['id'] = array('eq',100); 等效于:$map['id'] = 100;
neq != $map['id'] = array('neq',100); id != 100
gt > $map['id'] = array('gt',100); id > 100
egt >= $map['id'] = array('egt',100); id >= 100
lt < $map['id'] = array('lt',100); id < 100
elt <= $map['id'] = array('elt',100); id <= 100
like like $map['username'] = array('like','Admin%'); username like 'Admin%'
between between and $map['id'] = array('between','1,8'); id BETWEEN 1 AND 8
not between not between and $map['id'] = array('not between','1,8'); id NOT BETWEEN 1 AND 8
in in $map['id'] = array('in','1,5,8'); id in(1,5,8)
not in not in $map['id'] = array('not in','1,5,8'); id not in(1,5,8)
and(默认) and $map['id'] = array(array('gt',1),array('lt',10)); (id > 1) AND (id < 10)
or or $map['id'] = array(array('gt',3),array('lt',10), 'or'); (id > 3) OR (id < 10)
xor(异或) xor 两个输入中只有一个是true时,结果为true,否则为false,例子略。 1 xor 1 = 0
exp 综合表达式 $map['id'] = array('exp','in(1,3,8)'); $map['id'] = array('in','1,3,8');

MySQL where条件表达式运算符参见:《MySQL WHERE 条件》。

补充说明

  • 同 SQL 一样,ThinkPHP运算符不区分大小写,eq 与 EQ 一样。
  • between、 in 条件支持字符串或者数组,即下面两种写法是等效的:
    $map['id']  = array('not in','1,5,8');
    $map['id']  = array('not in',array('1','5','8'));

exp 表达式

上表中的 exp 不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使用任何 SQL 支持的语法,包括使用函数和字段名称。

exp 不仅用于 where 条件,也可以用于数据更新,如:

$Dao = M("Article");

// 构建 save 的数据数组,文章点击数+1
$data['aid'] = 10;
$data['counter'] = array('exp','counter+1');

// 根据条件保存修改的数据
$User->save($data);

注:对于数字字段的加减,可以直接使用 ThinkPHP setInc 与 setDec 方法

模板标签中使用表达式

在模板标签中使用 ThinkPHP表达式,参见《ThinkPHP运算符》。

参考阅读

© 著作权归作者所有

ywppengpeng
粉丝 5
博文 63
码字总数 32377
作品 0
西安
程序员
私信 提问
加载中

评论(0)

暂无文章

录制电脑视频方法是什么?简单几步轻松录屏

录制电脑视频方法是什么?小编在两个月时间里,通过一个网课网站学习了十多天的PS线上直播课程,这些课程是老师们通过录屏软件在电脑上录制而成的。不知大家在日常中会不会也需要使用屏幕录像...

dawda
25分钟前
19
0
Exchange Server在前端服务器上生成了很多用户的配置文件

问题现象 在Exchange 2010前端服务器C盘的users目录下生成了很多用户的配置文件,这些用户并没有直接登录exchange服务器。 问题原因 如果用户登录到OWA并更改其密码,则将在CAS服务器上创建用...

osc_9fz4iln8
25分钟前
24
0
firefox无法同步书签,恢复备份文件失败的解决办法

前两天笔记本重装系统,装完系统后装Firefox浏览器,装完浏览器后登陆账号,登陆正常,尝试同步书签,没反应:( 还好,另外还有台台式机。firefox登陆正常,导出bookmarks.html,发送到笔记本...

osc_gwtkg2dc
26分钟前
15
0
PowerShell ForEach-Object循环示例

示例一 Get-ChildItem | ForEach-Object { "File length:"+$_.Length}<#File length:63File length:381File length:258File length:643File length:329File length:942File length:3......

osc_8rbrmk98
27分钟前
18
0
在CMD命令行中运行py文件

在CMD命令行中运行py文件 1、 在windows10下的CMD命令行中运行python文件,需要先设置环境变量 我的电脑-属性-高级系统设置-高级-环境变量-系统变量 选择path 点击编辑 2、点击新建,输入p...

osc_cpolwgcv
29分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部