ThinkPHP5数据库实例详解
/ name方法
name方法
name方法的使用
1、功能:选择当前操作的数据表实例(省力表前缀)
2、源码位置:/thinkphp/library/think/db/Query.php
/**
* 指定默认的数据表名(不含前缀)
* @access public
* @param string $name
* @return $this
*/
public function name($name)
{
$this->name = $name;
return $this;
}
3、参数与返回值:
- 阅读源码发现:
- 参数只有一个:不包括前缀的数据表名称;
- 返回的是查询类Query的对象自身,便于后面链式调用。
4、适用环境:
- 必须在数据库连接配置中,设置好数据表的前缀。
5、调用语法(以:tp5_staff表为例):
- 通过 Db.php类中的:static _callStatic() 自动实现静态方法调用(了解即可)
- 数据库类静态调用:Db::name('staff');
6、实例演示:
- 省略前缀的表名)选择tp5_staff表,查询id等于1003的数据:
- Index.php 控制器源文件:
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
class Index extends Controller {
public function index(){
dump(Db::name('staff')->find('1003'));
}
}
- 运行结果:
array(7) {
["id"] => int(1003)
["name"] => string(6) "杨过"
["sex"] => int(0)
["age"] => int(35)
["salary"] => float(5303)
["dept"] => string(9) "市场部"
["hiredate"] => string(10) "2014-09-22"
}
7、局限性或注意事项:
- name()方法选择数据表,简洁方便,与模型有点类似;
- 不可以跨库操作,即不可指定数据库前缀;
- 不可以设置表别名(因为当前表名不简称);
小作业:
- 对照table方法,name方法显得简单多了,上机试一下吧~~