ThinkPHP官方解决方案:
//在配置中加入
'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL), // 数据库连接参数亲测行不通 (或许是我操作问题,如果有同样问题的同学,请接着往下看)
//ThinkPHP/Common/funcitons.php
//line 457 return trim(preg_replace("/[A-Z]/", "\\0", $name), "_"); //去掉strtolower(),把"_\\0"中"_"去掉
function parse_name($name, $type=0) {
if ($type) {
return ucfirst(preg_replace_callback('/_([a-zA-Z])/', function($match){return strtoupper($match[1]);}, $name));
} else {
// return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));
return trim(preg_replace("/[A-Z]/", "\\0", $name), "_");
}
}//ThinkPHP/library/Think/Model.class.php
//line 1470 $this->trueTableName = $tableName; //去掉strtolower
public function getTableName() {
if(empty($this->trueTableName)) {
$tableName = !empty($this->tablePrefix) ? $this->tablePrefix : '';
if(!empty($this->tableName)) {
$tableName .= $this->tableName;
}else{
$tableName .= parse_name($this->name);
}
// $this->trueTableName = strtolower($tableName);
$this->trueTableName = $tableName;
}
return (!empty($this->dbName)?$this->dbName.'.':'').$this->trueTableName;
}最后再来个 mysql 不能创建大写的表名问题
[mysqld]
#(0:区分;1:不区分)数据表区分大小写
lower_case_table_names=0
ThinkPHP数据库配置与大写表名问题解决

本文详细探讨了在ThinkPHP框架中配置数据库连接参数的问题,特别是使用PDO连接时设置数据库连接参数的案例。同时,文章还提到了在ThinkPHP框架内处理表名大小写的问题,并分享了解决MySQL不能创建大写表名的方法。
2836

被折叠的 条评论
为什么被折叠?



