这期内容当中小编将会给大家带来有关怎么在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进行配置