thinkphp

我的tp版本是3.2.3,晚上突然心血来潮想把mysql的数据库连接类型(如下图)换成pdo,

tp.png

可是当我改完了以后,去测试的时候却总是报错,代码已经没问题了,后面去翻了翻手册,得到了下面的答案。

1、首先3.2.3数据库类和驱动采用PDO重写了(确保你的服务器环境开启了PDO扩展),因此无论是什么数据库都是基于PDO实现的,所以DB_TYPE不再支持PDO设置,必须采用实际的数据库类型设置,而且也不再区分mysql和mysqli(统一设置为mysql即可) DB_DSN参数的作用已经改变了,因此默认情况下不再需要设置,直接设置为空字符串即可。

2、规范起见,默认的数据库驱动类设置了 字段名强制转换为小写,如果你的数据表字段名采用大小写混合方式的话,需要在配置文件中增加如下设置:

  1. 'DB_PARAMS'    =>    array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),

复制代码

该处官方有更新框架,请确认已经下载了官方最新的框架包

3、鉴于命名空间的推广和框架规范统一,APP_USE_NAMESPACE参数可能会在下一版本取消,不再推荐使用,请尽快采用命名空间方式升级你的项目。

4、控制器层次参数CONTROLLER_LEVEL由于使用复杂,也不再推荐使用,可能会在下一版本取消。

5、数据库调试模式的开启可以使用新的参数DB_DEBUG进行设置,不再依赖于系统的调试模式常量APP_DEBUG。

6、如果使用了插件控制器,需要把插件控制器放置到和模块同级的目录,并更改命名空间(具体参考手册的 插件控制器)

7、如果使用了子查询,请更新最新的下载版本(2014-12-28之前下载的需要重新下载)



nickname
content