php 框架查询语句在哪,thinkphp5中常用数据库查询语句介绍_PHP开发框架教程,thinkphp5...

laravel单文件、多文件上传的实现方法_PHP开发框架教程

下面由laravel​教程栏目给大家介绍关于laravel单文件、多文件上传的实现方法,希望对需要的朋友有所帮助! 代码超简洁也超好理解呀!!!先设置上传文件的路由,再设置uploads磁盘地址,之后储存文件...

f1e24bd53cbb48aa33631642bb5eb992.png

tp_data 数据表

46a577eefc9940f5eb7a8dc0f395d80c.png

value()

$name = Db::name('data')

-> where('id', 16)

-> value('name');

print_r($name);

// 获取 tp_data 数据表中 id = 16,name 字段的值,并打印

// 结果:1111

/** 原生sql语句

>Prepare SELECT `name` FROM `tp_data` WHERE `id` = ? LIMIT 1

>Execute SELECT `name` FROM `tp_data` WHERE `id` = 16 LIMIT 1

*/

column()

获取一列满足条件的数据

$list = Db::name('data)

-> where('status', 1)

-> column('name');

print_r($list);

// 从 tp_data 数据表获取一列 status = 1 的 name 字段值

/** 结果:

Array(

[0] => thinkphp

[1] => thinkphp

[2] => thinkphp

[3] => thinkphp

[4] => 7777777777

[5] => thinkphp

[6] => thinkphp

[7] => thinkphp

[8] => thinkphp

)

*/

获取一列满足条件的数据,并以id值为键名

$list = Db::name('data)

-> where('status', 1)

-> column('name', 'id');

print_r($list);

// 从 tp_data 数据表获取一列 status=1 的 name 字段值集合

/** 结果:

Array(

[3] => thinkphp

[4] => thinkphp

[5] => thinkphp

[6] => thinkphp

[7] => 7777777777

[8] => thinkphp

[9] => thinkphp

[10] => thinkphp

[11] => thinkphp

)

*/

获取以id为键名的数据集

$list = Db::name('data')

-> where('status', 1)

-> column('*', 'id');

print_r($list);

// 从 tp_data 数据表获取一列 status=1 的数据集

/** 结果:

Array(

[3] => Array(

[id] => 3

[name] => thinkphp

[status] => 1

)

[4] => Array(

[id] => 4

[name] => thinkphp

[status] => 1

)

[5] => Array(

[id] => 5

[name] => thinkphp

[status] => 1

)

...

)

*/

聚合查询

count

max

min

avg

sum

统计 data 表的数据关于TP5框架中Query.php中废弃写法_PHP开发框架教程

这是在TP5使用链式方法查询数据库时遇到的问题,原因是每个链式方法都会返回一个Query对象,Query.php的370行中 $str {0} 这种写法被废弃了;改为 substr($value ,0,1) 。

$count = Db::name('data')

-> where('status', 1)

-> count();

echo $count;

// 结果:9

统计 data 表的最大 id

$max = Db::name('data')

-> where('status', 1)

-> max('id);

echo $max;

// 结果:11

简单查询

$result = Db::name('data')

-> where("id > :id and name like :name",

[

'id' => 10,

'name' => "%php%"

])

-> select();

print_r($result);

/** 结果:

Array(

[0] => Array(

[id] => 11

[name] => thinkphp

[status] => 1

)

)

*/

/** 原生sql语句:

>Prepare SELECT * FROM `tp_data` WHERE (id > ? and name like ?)

>Execute SELECT * FROM `tp_data` WHERE (id > '10' and name like '%php%')

*/

日期查询

日期类型int,时间戳格式

查询时间大于 2016-1-1 的数据

$result = Db::name('users')

-> whereTime('reg_time', '>', '2016-1-1')

-> select();

print_r($result);

/** 原生sql语句:

>Prepare SELECT * FROM `tp_users` WHERE `reg_time` > ?

>Execute SELECT * FROM `tp_users` WHERE `reg_time` > 1451577600

*/

查询本周

$result = Db::name('users')

-> whereTime('reg_time', '>', 'this week')

-> select();

print_r($result);

// 从本周星期一开始

查询最近两天添加的数据

$result = Db::name('users')

-> whereTime('reg_time', '>', '-2 days')

-> select();

print_r($result);

查询创建时间在 2016-1-1 ~ 2017-7-1 的数据

$result = Db::name('users')

-> whereTime('reg_time', 'between', ['2016-1-1', '2017-7-1'])

-> select();

print_r($result);

/** 原生sql语句:

>Prepare SELECT * FROM `tp_users` WHERE `reg_time` BETWEEN ? AND ?

>Execute SELECT * FROM `tp_users` WHERE `reg_time` BETWEEN 1451577600 AND 1483200000

*/

查询今天的数据

昨天:yesterday

本周:week

上周:last week

$result = Db::name('users')

-> whereTime('reg_time', 'today')

-> select();

print_r($result);

分块查询

Db::name('data')

-> where('status', '>', 0)

-> chunk(2, function($list) {

foreach($list as $data) {

//处理2条记录

}

});

/** 原生sql语句:

>Prepare SELECT * FROM `tp_data` WHERE `status` > ? ORDER BY `id` asc LIMIT 2

>Execute SELECT * FROM `tp_data` WHERE `status` > 0 ORDER BY `id` asc LIMIT 2

>Close stmt

>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2

>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 4 ORDER BY `id` asc LIMIT 2

>Close stmt

>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2

>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 6 ORDER BY `id` asc LIMIT 2

>Close stmt

...

>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2

>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 16 ORDER BY `id` asc LIMIT 2

>Close stmt

>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2

>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 17 ORDER BY `id` asc LIMIT 2

>Close stmt

*/

改进

$p = 0;

do {

$result = Db::name('data') -> limit($p, 2) -> select();

$p += 2;

//处理数据

} while(count($result) > 0);

推荐教程:《TP5》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值