ThinkPHP3.2.3 MySQL数据库表字段大小写问题

TP3.2.3查询数据库表时,默认表字段转小写
Think\Db(命名空间)下的 Driver.class.php。 如下图:

PDO::ATTR_CASE (integer)    用类似 PDO::CASE_* 的常量强制列名为指定的大小写。(8)
PDO::CASE_NATURAL (integer) 保留数据库驱动返回的列名。(0)
PDO::CASE_UPPER (integer)   强制列名大写。(1)
PDO::CASE_LOWER (integer)   强制列名小写。(2)

在不修改Driver.class.php的条件下,可以通过下面两种方法来解决问题:
1.数据库配置(全局):

'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),
// 或者
'DB_PARAMS' => array(8 => 0),

2.局部:

// 1).M()方法 
M($name='', $tablePrefix='',$connection='mysql://user:password@localhost:3306/db_name?' . \PDO::ATTR_CASE . '=' . \PDO::CASE_NATURAL . '#utf8')

// 2).模型(继承Model)属性 
protected $connection = 'mysql://user:password@localhost:3306/db_name?' . \PDO::ATTR_CASE . '=' . \PDO::CASE_NATURAL . '#utf8'

// 或者 mysql://user:password@localhost:3306/db_name?8=0#utf8

猜你喜欢

转载自blog.csdn.net/qq_27926653/article/details/84393829
今日推荐