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