ThinkPHP查询语句与关联查询用法实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-04-21 10:21:40 浏览: 评论:0
这篇文章主要介绍了ThinkPHP查询语句与关联查询用法,以实例的形式常见的查询方法,包括数组作为查询条件及对象方式来查询等技巧,需要的朋友可以参考下
本文实例讲述了ThinkPHP查询语句与关联查询用法。分享给大家供大家参考。具体如下:
在thinkphp框架页面中我们可以直接拼写sql查询语句来实现数据库查询读写操作,下面就对此加以实例说明。
普通查询除了字符串查询条件外,数组和对象方式的查询条件是非常常用的,这些是基本查询所必须掌握的。
一、使用数组作为查询条件,代码如下:
- $User = M("User"); //实例化User对象
- $condition['name'] = 'thinkphp'; // 把查询条件传入查询方法
- $User->where($condition)->select();
二、使用对象方式来查询 可以使用任何对象 这里以stdClass内置对象为例,代码如下:
- $User = M("User"); // 实例化User对象
- // 定义查询条件 $condition = new stdClass();
- $condition->name = 'thinkphp'; // 查询name的值为thinkphp的记录
- $User->where($condition)->select(); // 上面的查询条件等同于 where('name="thinkphp"') 使用对象方式查询和使用数组查询的效果是相同的,并且是可
带where条件的普通查询
1、字符串形式,代码如下:
- $user=M('user');
- $list=$user->where('id>5 and id<9')->select();
- $list=$user->where($data)->select();
2、数组形式,代码如下:
- $user=M('user');
- $list=$user->where(array('username'=>'www.phpfensi.com'))->select();
- $list=$user->where($data)->select();
3、对象形式,代码如下:
- $user=M('user');
- $a=new stdClass();
- $a->username='www.phpfensi.com;
- $list=$user->where($a)->select();
两个表的关联查询:
- $M_shopping = M('Shops');
- $M_product = M('Product');
- $list_shops = $M_shopping->join('as shops left join hr_product as product on shops.product_id = product.p_id')
- ->field('product.p_id,product.p_name,shops.product_amount,shops.product_id')
- ->where("shops.user_cookie='".$_COOKIE['hr_think_userid']."'")
- ->group('shops.id')
- ->select();
区间查询,代码如下:
- $user=M('user');
- $data['id']=array(array('gt',20),array('lt',23),'and');
- $list=$user->where($data)->select();
组合查询,代码如下:
- $user=M('user');
- $data['username']='pengyanjie';
- $data['password']=array('eq','pengyanjie');
- $data['id']=array('lt',30);
- $data['_logic']='or';
- $list=$user->where($data)->select();
- dump($list);
复合查询,代码如下:
- $user=M('user');
- $data['username']=array('eq','pengyanjie');
- $data['password']=array('like','p%');
- $data['_logic']='or';
- $where['_complex']=$where;
- $where['id']=array('lt',30);
- $list=$user->where($data)->select();
三个数据表的关联查询,代码如下:
- $M_shopping = M('Shops');
- $M_product = M('Product');
- $M_proimg = M('Product_image');
- $list_shops = $M_shopping->join('as shops left join hr_product as product on shops.product_id = product.p_id left join
- hr_product_image as productimgon productimg.p_id = product.p_id')->fiel('productimg.pi_url,product.p_id,product.p_name,shops.product_amount,shops.product_id,product.am_id,
- product.p_procolor,product.p_price,product_amount*p_price as totalone')->where("shops.user_cookie='".$_COOKIE['hr_think_userid']."'")
- ->group('shops.id')->select();
数据表的查询条件
① 下面的是直接吧查询的条件放到了where中,这样就方便了条件的书写,代码如下:
$m_test = M("Product");
$productmeaage = $m_test->where("p_id='$proid'")->select();
② 除了上面的方法还有一种是以数组的方式,代码如下:
- $M_product = M('Product');
- $map['pid'] = $proid;
- $p_result = $M_product->where($map)->select();
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。
Tags: ThinkPHP关联查询
相关文章
- ·ThinkPHP中关联查询实例(2021-05-02)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)