怎么在CodeIgniter中对database.php进行配置

  介绍

这期内容当中小编将会给大家带来有关怎么在CodeIgniter中对database.php进行配置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

CodeIgniter的数据库配置文件位于应用程序/配置/数据库。php,该文件中定义了$ db的二维数组,参考文件如下:

active_group 美元;=,& # 39;默认# 39;;=$ active_record 真实;   $ db[& # 39;默认# 39;][& # 39;主机名# 39;],=,& # 39;localhost # 39;;   $ db[& # 39;默认# 39;][& # 39;用户名# 39;],=,& # 39;根# 39;;   $ db[& # 39;默认# 39;][& # 39;密码# 39;],=,& # 39;123456 & # 39;;   $ db[& # 39;默认# 39;][& # 39;数据库# 39;],=,& # 39;测试# 39;;   $ db[& # 39;默认# 39;][& # 39;dbdriver& # 39;],=, & # 39; mysql # 39;;   $ db[& # 39;默认# 39;][& # 39;dbprefix& # 39;],=, & # 39; & # 39;;   $ db[& # 39;默认# 39;][& # 39;pconnect # 39;],=,假;   $ db[& # 39;默认# 39;][& # 39;db_debug& # 39;],=,真的;   $ db[& # 39;默认# 39;][& # 39;cache_on& # 39;],=,假;   $ db[& # 39;默认# 39;][& # 39;cachedir& # 39;],=, & # 39; & # 39;;   $ db[& # 39;默认# 39;][& # 39;char_set& # 39;],=, & # 39; use utf8 # 39;;   $ db[& # 39;默认# 39;][& # 39;dbcollat& # 39;],=, & # 39; utf8_general_ci& # 39;;   $ db[& # 39;默认# 39;][& # 39;swap_pre& # 39;],=, & # 39; & # 39;;   $ db[& # 39;默认# 39;][& # 39;autoinit& # 39;],=,真的;   $ db[& # 39;默认# 39;][& # 39;stricton& # 39;],=,假;

<强>配置说明

active_group美元为$ db中的一维键名,表示默认使用的数据库配置,即$ this→负载→数据库()不传入参数时,将默认使用$ db (active_group美元)来连接数据库。

active_record美元是否开启AR模式,开启后将可以使用AR类中的方法,该值可通过$ this→负载→数据库()的第三个参数传入。

<强> $ db数组需要注意的地方

1,港口默认只列出了主机,帐号,密码等,未配置端口号,如果需要特别指定端口号则需要配置该值。

2, pconnect长连接的问题,值默认为真实表示默认使用长连接。长连接的使用需要特别小心,数据库可能会出现大量的睡眠的进程而导致更多的请求执行不成功,这里不建议开启长连接。

3, db_debug为真时SQL执行出错则会直接在错误页面打印,开发环境可以打开,生产环境需关闭。

4, autoinit是否自动初始化数据库,为真时则$ this→负载→数据库()就会连接数据库,否则在查询时连接数据库.CI的类都做了单例,所以不用担心多次链接。

5, stricton当该值为TRUE时,初始化时会执行这样一条语句,会对不规范的数据,比如字符超过长度,自增主键传入“& # 39;等将会直接抛错。

代码如下:

设置会话sql_mode=癝TRICT_ALL_TABLES"


<>强如何连接数据库?

可通过加载程序中数据库的方式调用,即$ this→负载→数据库();函数的定义如下:

/* *   ,* Database 加载程序   ,*   ,* @param , string 数据库连接值,数组或DSN字符串传递。   ,* @param , bool ,是否返回数据库对象,否则将数据库对象赋值给控制器的db属性   ,* @param , bool ,是否使用AR,这里的设置会覆盖database.php中设置   ,* @return 对象   ,*/function 数据库($ params =, & # 39; & # 39;,, return 美元;=,假,,active_record 美元;=,NULL) {}

<>强劲美元参数的值有3种情况,分别是:

1,字符串,传入$ db数组一维键名,如默认的测试等,为空则默认active_group美元定义的值

2,数组,可以直接传入类似$ db的一维数组,如:

$ this→→加载数据库(阵列(   & # 39;才能主机名# 39;,=祝辞,& # 39;localhost # 39;   & # 39;才能用户名# 39;,=祝辞,& # 39;根# 39;   & # 39;才能密码# 39;,=祝辞,& # 39;123456 & # 39;   & # 39;才能数据库# 39;,=祝辞,& # 39;测试# 39;   & # 39;才能dbdriver& # 39;,=祝辞,& # 39;mysql # 39;   & # 39;才能pconnect # 39;,=祝辞,假的,   & # 39;才能db_debug& # 39;,=祝辞,真的,   & # 39;才能char_set& # 39;,=祝辞,& # 39;use utf8 # 39;   & # 39;才能dbcollat& # 39;,=祝辞,& # 39;utf8_general_ci& # 39;   ));

3, DSN字符串,如:

dsn 美元;=,& # 39;mysql://根:123456 @localhost/测试? charset=utf8& dbcollat=utf8_general_ci& # 39;;   美元$ this→负载→数据库(dsn);

PDO的初始化需要使用dsn字符串,那么在CI中该如何配置呢,可参考如下配置:

//当前版本2. x.x=$ active_group  & # 39;默认# 39;;=$ active_record 真实;   $ db[& # 39;默认# 39;][& # 39;主机名# 39;],=,& # 39;mysql:主机=localhost; dbname=测试# 39;;   $ db[& # 39;默认# 39;][& # 39;用户名# 39;],=,& # 39;根# 39;;   $ db[& # 39;默认# 39;][& # 39;密码# 39;],=,& # 39;123456 & # 39;;   $ db[& # 39;默认# 39;][& # 39;数据库# 39;],=,& # 39;测试# 39;;   $ db[& # 39;默认# 39;][& # 39;dbdriver& # 39;],=, & # 39; pdo # 39;;   $ db[& # 39;默认# 39;][& # 39;dbprefix& # 39;],=, & # 39; & # 39;;   $ db[& # 39;默认# 39;][& # 39;pconnect # 39;],=,假;   $ db[& # 39;默认# 39;][& # 39;db_debug& # 39;],=,真的;   $ db[& # 39;默认# 39;][& # 39;cache_on& # 39;],=,假;   $ db[& # 39;默认# 39;][& # 39;cachedir& # 39;],=, & # 39; & # 39;;   $ db[& # 39;默认# 39;][& # 39;char_set& # 39;],=, & # 39; use utf8 # 39;;   $ db[& # 39;默认# 39;][& # 39;dbcollat& # 39;],=, & # 39; utf8_general_ci& # 39;;   $ db[& # 39;默认# 39;][& # 39;swap_pre& # 39;],=, & # 39; & # 39;;   $ db[& # 39;默认# 39;][& # 39;autoinit& # 39;],=,真的;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在CodeIgniter中对database.php进行配置