问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

thinkPHP 写了where条件生成出来的sql却没有where,这到底是为什么

发布网友 发布时间:2022-04-10 07:23

我来回答

3个回答

懂视网 时间:2022-04-10 11:44

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‘);

补充说明

  • 同 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[‘id‘] = 10;

    $data[‘counter‘] = array(‘exp‘,‘counter+1‘);

     

    // 根据条件保存修改的数据

    $User->save($data);

    tp框架where条件查询数据库

    标签:补充   silver   自己   str   微软雅黑   大小写   counter   order   一个   

    热心网友 时间:2022-04-10 08:52

    在thinkphp的查询中是找不到你这种查询方式的,一般有查询方式有:

    1、$map

    $map['user_id'] = array('eq', $_GET['id'];
    $model->where($map)->select();

    2、$where

    $where['user_id'] = $_GET['id'];
    $model->where($where)->select();

    3、表达式

    $model->where('user_id = '.$_GET['id'])->select();

    热心网友 时间:2022-04-10 10:10

    where("user_id = $_GET['id']")
    thinkPHP 写了where条件生成出来的sql却没有where,这到底是为什么

    在thinkphp的查询中是找不到你这种查询方式的,一般有查询方式有:1、$map map['user_id'] = array('eq', $_GET['id'];$model-&gt;where($map)-&gt;select();2、$where where['user_id'] = $_GET['id'];$model-&gt;where($where)-&gt;select();3、表达式 model-&gt;where('user_id = '.$_...

    thinkphp的查询语句-&gt;query()和-&gt;where怎么连用起来?

    使用query的话 直接将sql语句写入 query()内就可以了 -&gt;where()是数据操作的时的条件、

    thinkphp的where条件为在一个范围又不等于怎么写

    回答:很简单的例如; $sql=$实例化的表名-&gt;where(" $a &gt;1 and $a &lt;10 and $a !=$c")-&gt;selsect();

    thinkphp update更新数据问题

    1、在thinkphp 5当中,如果需要更新某个字段的值可以这样写:Db::table('think_user') -&gt;where('id', 1) -&gt;update([ 'login_time' =&gt; ['exp','now()'], 'login_times' =&gt; ['exp','login_times+1'],]);或:Db::table('think_user')-&gt;where('id',1)-&gt;setFiel...

    ThinkPHP中M方法生成语句where条件自动多加了Id

    挺多ThinkPHP访问数据库的问题是缓存引起的。清掉Runtime/data/_fields试试。

    thinkphp 中where条件怎么使用or

    where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。我觉得后盾人还不错,有时间的话,你可以去看看,会有不错的效果哦 ...

    thinkphp 里sql 语句如何解读???

    这个不是原生写法,这是tp固有的写法,里面对语句做了封装,就是查询fields表里条件是model为空或其他条件符合的值。明白了吧!

    thinkphp一条WHERE查询的写法

    where['id'] = array('neq','5');$where['age'] = array('egt','20');$map['id'] = array('gt','15');$map['age'] = array('lt','18');$where['_logic'] = 'OR';$map['_complex'] = $where;试试 望采纳 Thx ...

    在thinkphp框架中如何防止sql注入

    其次,查询构造器是ThinkPHP中另一个重要的防SQL注入工具。查询构造器提供了一种链式调用的方式来构建SQL语句,它内部会自动处理数据的转义和拼接,用户无需直接编写SQL语句。这种方式不仅代码更加简洁易读,而且能够大大减少因手动拼接SQL而产生的注入漏洞。例如,使用where方法来设置查询条件,而不是直接将...

    thinkphp 数据库查询怎么查?

    最后生成的SQL语句是 1 SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'三、使用对象方式来查询 (这里以stdClass内置对象为例)1 2 3 4 5 6 User = M("User"); // 实例化User对象 // 定义查询条件 condition = new stdClass();condition-&gt;name = 'think...

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    文件密使无法恢复解密,请高手帮忙 加密文件打不开了,请教高手..急需用那些文件 跪求电脑高手帮忙解决文件加密问题,我把所有积分给他。 我的优盘是联想的,用自带的加密软件加密后,忘了密码,请教高手,怎么解密... pe pb是什么 抱着柴火去火跟前猜谜语 关于租用办公室房产税如何计算与缴纳的问题 一个人抱着柴火前方是火是打一成语的谜语 ...前男友跟别的女人抱一起的时候,放的背景纯音乐出自哪里 ...从前男友家出来后被阿苏接上车,在车上的背景音乐是什么,在哪里有下... 办公室电脑连不上网是什么原因 昨天租的房子,交了半年房租,签了合同,今天不想租了,可以退吗? 可乐能疏通马桶吗 医生跟你签了就业协议书以后,下一步应怎么做,如何进行就业派遣? 透明软糖加可乐罐真的可以通下水道吗? 喉咙里好像有东西咽唾沫的时候有点堵吃了饭有点恶心还 最近喉咙好像有东西堵着,很难受。大神们帮帮忙 最近喉咙感觉有东西堵着,就像吃的饭没有咽下去的感觉。 喉咙吃东西有梗塞感 吞口水的时候感觉喉咙和食道有东西堵塞 吃了东西之后,食物就像堵在喉咙一样,是食道问题么? 脖子咽喉部位就像有东西堵一样,咽口水都有种堵着的感觉,是怎么回事啊? 感觉喉咙里有个东西堵着似的,但是吞咽食物时没有明显阻挡,呼吸有点不顺,什么情况? 为什么每次一吃东西喉咙像有东西堵到了,咽不下去又吐不出来? 医生你好!我喉咙部位感觉好像有东西塞着了一样,特别是吞口水,就是很难吞下去,一喝水又没问题,我一咳 我吃饭咽东西的时候,感觉喉咙里有东西难以下咽。就像有东西堵的一样,那是怎么回事呀 喉咙里咽东西感觉不舒服有东西在堵一样什么原因 喉咙感觉有异物梗塞,吃饭喝水咽口水都有感 最近喉咙里老是觉得有东西堵着,像有东西没吞咽下去堵在那的感觉,但是吃东西时没有感觉难下咽一切正常, 我只知道老婆的,不知密码,怎样才能用我的手机登陆上她的微信? 签一年的房屋合同只住了半年,如不租了算违约吗? 租房合同签了年,中途退房,算违约吗 房子合同签一年,半年可以退房吗 朋友借了我四千元钱不还,可不可以报案 朋友欠4000块钱不还没有借条怎么办,两个多月联系不上了只有微信聊天记录的证据,报警*管不管? 欠4000块钱不还可以报警么? 租房合同一年,中途退租 朋友借我5000块不还是否可以报警处理 朋友找我借四千微信转账给他了却一直不还我有他身份证号可以报警吗? 房贷60万,分30年还清,己经还了10年,想一次性还清,还差银行多少钱? 朋友借我4000块钱没有还给我,现在还有微信转账记录,只不过他把名字,我可以报警要回来吗 电信卡怎么异地注销 word中的线段怎么画出来? thinkphp 根据条件查数据库存在记录则修改 不存在则添加 应用程序打不开缺少winhttp.dll,360无效,下载软件打不开,电脑明显卡顿 用于后台智能传送服务 (BITS) 2.0 和 WinHTTP失败 如果投影距离不满足,无法投射适合的尺寸,怎么办? WinHttpSendRequest失败原因,该怎么处理 windows系统错误代码怎么解决 服务器重启,WinHTTP AutoProxy问题。若能解决,必有重分!