zoukankan      html  css  js  c++  java
  • table方法也属于模型类的连贯操作方法之一

    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方法,默认会自动获取当前模型对应或者定义的数据表。

     
  • 相关阅读:
    一个简易的词法分析器
    Wireshark的简单使用
    TCP的三次握手和四次挥手详解
    在WEB显示实时视频流
    linux 下 查看进程的启动时间和运行时间
    mac os x 安装adb
    C++ 和 java 使用 AES CBC 128 加解密
    转:Java中String与byte[]的转换
    对称加密
    Google C++ Style Guide在C++11普及后的变化
  • 原文地址:https://www.cnblogs.com/furuihua/p/11792500.html
Copyright © 2011-2022 走看看