目录搜索
文字

有两种连接数据库的方法:

自动连接

“自动连接”功能将在每次加载页面时加载和实例化数据库类。要启用“自动连接”,请将Word数据库添加到库数组中,如下文件所示:

application/config/autooload.php

手动连接

如果只有某些页面需要数据库连接,则可以通过在需要的任何函数中添加这一行代码或在类构造函数中手动连接到数据库,从而使数据库在该类中全局可用。

$this->load->database();

如果上面的函数在第一个参数中包含任何信息,它将连接到数据库配置文件中指定的组。对于大多数人来说,这是首选的使用方法。

可用参数

  • 数据库连接值,作为数组或DSN字符串传递。

  • TRUE / FALSE(布尔值)。是否返回连接ID(请参阅下面的连接到多个数据库)。

  • TRUE / FALSE(布尔值)。是否启用查询生成器类。默认设置为TRUE。

手动连接到数据库

此函数的第一个参数可以任选用于从配置文件中指定特定的数据库组,或者甚至可以为配置文件中未指定的数据库提交连接值。例子:

要从配置文件中选择特定的组,可以这样做:

$this->load->database('group_name');

所在群[医]名称是配置文件中连接组的名称。

要手动连接到所需的数据库,可以传递一个值数组:

$config['hostname'] = 'localhost';
$config['username'] = 'myusername';
$config['password'] = 'mypassword';
$config['database'] = 'mydatabase';
$config['dbdriver'] = 'mysqli';
$config['dbprefix'] = '';
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = '';
$config['char_set'] = 'utf8';
$config['dbcollat'] = 'utf8_general_ci';
$this->load->database($config);

有关这些值中每个值的信息,请参见配置页...

对于PDO驱动程序,应该使用$config‘dsnn’设置而不是“主机名”和“数据库”:

也可以将数据库值作为数据源名称提交。DSNS必须具有以下原型:

$dsn = 'dbdriver://username:[email protected]/database';$this->load->database($dsn);

若要在与DSN字符串连接时重写默认配置值,请将配置变量添加为查询字符串。

$dsn = 'dbdriver:
//username:[email protected]/database?char_set=utf8&dbcollat=utf8_general_ci&cache_on=true&cachedir=/path/to/cache';
$this->load->database($dsn);

连接到多个数据库

如果你需要同时连接多个数据库,你可以这样做:

$DB1 = $this->load->database('group_one', TRUE);$DB2 = $this->load->database('group_two', TRUE);
  • 注意:将单词“group_one”和“group_two”更改为要连接的特定组名(或者您可以按照上面所述传递连接值)。

通过将第二个参数设置为TRUE(布尔值),该函数将返回数据库对象。

以这种方式连接时,您将使用对象名称来发布命令,而不是本指南中使用的语法。换句话说,而不是发出命令:

如果只需要在同一连接上使用不同的数据库,则不需要创建单独的数据库配置。您可以在需要时切换到不同的数据库,如下所示:

重新连接/保持连接正常

如果数据库服务器的空闲超时在您执行一些繁重的PHP提升(例如处理图像)时被超过,则应该考虑在发送进一步查询之前使用reconnect()方法对服务器执行ping操作,这可以适当地保持连接活着或重新建立它。

$this->db->reconnect();

手动关闭连接

虽然CodeIgniter智能地负责关闭数据库连接,但您可以显式关闭连接。

$this->db->close();
上一篇:下一篇: