table方法也属于模型类的连贯操作方法之一,主要用于指定操作的数据表。

用法

一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用table方法的情况通常是为了:

  1. 切换操作的数据表;
  2. 对多表进行操作;

例如:

  1. $Model->table('think_user')->where('status>1')->select();

也可以在table方法中指定数据库,例如:

  1. $Model->table('db_name.think_user')->where('status>1')->select();

table方法指定的数据表需要完整的表名,但可以采用下面的方式简化数据表前缀的传入,例如:

  1. $Model->table('__USER__')->where('status>1')->select();

会自动获取当前模型对应的数据表前缀来生成 think_user 数据表名称。

需要注意的是table方法不会改变数据库的连接,所以你要确保当前连接的用户有权限操作相应的数据库和数据表。 切换数据表后,系统会自动重新获取切换后的数据表的字段缓存信息。

如果需要对多表进行操作,可以这样使用:

大理石构件

  1. $Model->field('user.name,role.title')
  2. ->table('think_user user,think_role role')
  3. ->limit(10)->select();

为了尽量避免和mysql的关键字冲突,可以建议使用数组方式定义,例如:

  1. $Model->field('user.name,role.title')
  2. ->table(array('think_user'=>'user','think_role'=>'role'))
  3. ->limit(10)->select();

使用数组方式定义的优势是可以避免因为表名和关键字冲突而出错的情况。 一般情况下,无需调用table方法,默认会自动获取当前模型对应或者定义的数据表。

 

最新文章

  1. Eclipse '/RemoteSystemsTempFiles'错误
  2. JS简介
  3. IOS动态判断UITextField是否输入为手机号
  4. SlickGrid example 7:鼠标事件
  5. linux/windows 下kill某个pid的进程
  6. Webserver issues | PHP manager for IIS
  7. (转)《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构
  8. Java的基础概念
  9. c语言指针字符串与字符数组字符串的区别
  10. isEqual,isEqualTostring,==三者的区别
  11. cf B. The Fibonacci Segment
  12. 由于jsp include 很多文件后导致java类大小超过65535 bytes 的解决方法(转载)
  13. poj 1088 动态规划
  14. Cordova各个插件使用介绍系列(二)—$cordovaBarcodeScanner扫描二维码与生成二维码
  15. Azure SQL Database (23) Azure SQL Database Dynamic Data Masking动态数据掩码
  16. Android Firebase 服务简介
  17. 写给笨蛋徒弟的学习手册(3)—C#中15个预定义数据类型
  18. 中文汉字和常见英文数字等的unicode编码范围
  19. Mysql 数据类型 以及约束
  20. HTML动画 request animation frame

热门文章

  1. iOS开发UIResponder之NSUndoManager
  2. 【Android】Retrofit网络请求参数注解,@Path、@Query、@QueryMap.
  3. (转)Python学习笔记(1)__name__变量
  4. Memory barrier,
  5. LED 发光二极管压降
  6. mysql8以上版本时区问题:The server time zone value乱码XXXX
  7. 21-1字符串相关api
  8. iOS开发系列-LLVM、Clang
  9. 2019-8-31-C#-字典-Dictionary-的-TryGetValue-与先判断-ContainsKey-然后-Get-的性能对比
  10. python中的OrderedDict