连接数据库

您正在阅读旧版文档,新版文档已迁移至 [https://document.pescms.com]

目录

链接表

连接数据表非常简单,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;

PESCMS DOC 文档系统
© Copyright 2015-2024. by the PESCMS DOC
耗时0.0237秒