链接表
连接数据表非常简单,PESCMS提供了db()方法让我们快速连接上去。由于控制器和模型在调用方法上存在差异,因此下面给出两者连接表的方法。它们之间仅仅是伪变量名称差异而已。
参数说明备注$name要连接的数据库表名称必填。不需要带上表前缀$database要切换的数据库的名称非必填。默认为当前组配置的数据库名称$dbPrefix强制指定表前缀非必填。通常与切换库一起使用
连接表
在控制器上连接user表,并返回所有结果:
- $userList = $this->db('user')->select();
在模型上连接doc表,并返回所有结果:
- $docList = self::db('doc')->select();
注:在db()方法中声明的表名,不需要带上前缀。方法会自动补上前缀的。如当前程序连接的表前缀为pes_ 。上面两者则为:pes_user 和 pes_doc
切换库
有些时候,我们不仅仅使用一个库进行开发的。如业务库和日志库。通常来说,业务库是默认的配置库。在直接调用db()方法时,程序走的都是当前组默认的配置库。若需要程序走的是日志库,那么我们需要在db()方法中的第二个参数中声明该库的名称。
- $log = $this->db('user_log', 'pescms_log', 'log_')->select();
注:若您当前操作的组表前缀与切换库的表前缀不一致,那么您需要声明该表的前缀。正如上述的示例代码一样。
表前缀
编写连接多个表的SQL语句是,我们通常需要获取表前缀,以防止某天程序搬迁时,更改一大推表前缀。PESCMS提供了获取表前缀的变量。由于静态变量声明后,在非静态的方法中无法调用,控制器和模型调用的表前缀变量均不一样,这一点大家必须注意。
- //在控制中调用表前缀
- $this->prefix;
- //在模型中调用表前缀
- self::$modelPrefix;