连接到您的数据库
连接到数据库
连接到默认组
您可以在任何需要的地方添加此代码行,或在您的类构造函数中添加此代码行,以使数据库在该类中全局可用。
$db = \Config\Database::connect();
如果上面的函数在第一个参数中不包含任何信息,它将连接到您的数据库配置文件中指定的默认组。对于大多数人来说,这是首选的使用方法。
存在一个便利方法,它只是上面代码行的包装器,并为了您的方便提供。
$db = db_connect();
可用参数
\Config\Database::connect($group = null, bool $getShared = true): BaseConnection
$group
: 数据库组名称,一个字符串,必须与配置类的属性名称匹配。默认值为Config\Database::$defaultGroup
。$getShared
: true/false(布尔值)。是否返回共享连接(参见下文连接到多个数据库)。
连接到特定组
此函数的第一个参数可以**可选地**用于指定配置文件中的特定数据库组。示例
要从配置文件中选择一个特定组,您可以这样做
$db = \Config\Database::connect('group_name');
其中 group_name
是配置文件中连接组的名称。
多个连接到同一个数据库
默认情况下,connect()
方法每次都会返回数据库连接的同一个实例。如果您需要对同一个数据库进行单独的连接,请将 false
作为第二个参数发送
$db = \Config\Database::connect('group_name', false);
连接到多个数据库
如果您需要同时连接到多个数据库,您可以按如下方式进行
$db1 = \Config\Database::connect('group_one');
$db2 = \Config\Database::connect('group_two');
注意:将 group_one
和 group_two
更改为您要连接到的特定组名。
注意
如果您只需要在同一个连接上使用不同的数据库,则无需创建单独的数据库配置。您可以在需要时切换到不同的数据库,例如:$db->setDatabase($database2_name);
使用自定义设置连接
您可以传入一个数据库设置数组,而不是组名,以获得使用自定义设置的连接。传入的数组必须与配置文件中定义的组格式相同
$custom = [
'DSN' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
$db = \Config\Database::connect($custom);
重新连接/保持连接活动
如果您在进行一些繁重的 PHP 处理(例如处理图像)时,数据库服务器的空闲超时时间已超过,则应考虑使用 reconnect()
方法在发送更多查询之前 ping 服务器,这可以优雅地保持连接活动或重新建立连接。
重要
如果您使用的是 MySQLi 数据库驱动程序,则 reconnect()
方法不会 ping 服务器,而是关闭连接然后重新连接。
$db->reconnect();
手动关闭连接
虽然 CodeIgniter 会智能地处理关闭您的数据库连接,但您也可以显式地关闭连接。
$db->close();