thinkphp where有多个条件进行复合查询,关系为or,代码如下

thinkphp where有多个条件进行复合查询,关系为or,代码如下,第1张

请参考thinkphp开发手册的查询语言一节,可以有不同写法,我这里写一种供你参考:

$where1=array(

    'Key'=>array('like','zt'.'%'),

    'code'=>'02'

)

$where=array(

    'modes'=>1,

    'Key'=>array('like','tm'.'%'),

    'code'=>'02',

    '_complex'=>$where1, // 复合查询

    '_logic'=>'or'       // 关系为or

)

// 查询语句

$mysql=M('Mysql')->where($where)->select()

使用快捷查询

加入$map['_logic'] = 'OR'

$map['id|receiverid'] = array(session('uid'),array('in', implode(",",$idset)),'_multi'=>true)

以上方法等效。

当且与或并存时可以用复合查询,如以下多了一个name

$map['receiverid'] = session('uid')

$map['id'] = array('in', implode(",",$idset))

$map['_logic'] = 'OR'

$where['name'] = 'abc'

$where['_complex'] = $map

M('message') ->where($where)->select()

将生成:

WHERE (`receiverid` = 1 OR `id` IN ('13','12','10','9')) AND `name`='abc'

thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下:

惯例配置文件:ThinkPHP/conf/convention.php

(1)在配置文件中填写配置信息(配置文件:“./xmall/conf/config.php”):

示例:

<?php return array(//'配置项'=>'配置值'/* 数据库设置 */'DB_TYPE'=>'mysql', // 数据库类型 'DB_HOST'=>'localhost', // 服务器地址 'DB_NAME'=>'xmall', // 数据库名 'DB_USER'=>'root', // 用户名 'DB_PWD'=>'123', // 密码 'DB_PORT'=>'3306', // 端口 'DB_PREFIX'=>'think_', // 数据库表前缀 'DB_FIELDTYPE_CHECK' =>false, // 是否进行字段类型检查 'DB_FIELDS_CACHE' =>true, // 启用字段缓存 'DB_CHARSET' =>'utf8', // 数据库编码默认采用utf8 )?>

(2)创建表:

?12345 CREATE TABLE `think_user` ( `id` int(11) DEFAULT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(20) DEFAULT NULL) ENGINE=InnoDB

(3) 执行数据插入 *** 作在lib/Action下修改IndexAction.class.php文件,内容如下:

<?php class IndexAction extends Action{function index(){ public function index(){$data=array( "id"=>"1", "name="=>"liuning", "pwd"=>"asd123" ) M("user")->add($data) }} } ?>

(4)执行http://localhost/xmall/index.php,数据库中就会有新的记录生成;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7259588.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存