TP数据库表大写命名的一些问题
作者:网络转载 发布时间:[ 2014/6/11 14:07:17 ] 推荐标签:TP 测试管理工具
在使用thinkphp时,如果数据库表命名有大写,会被转换成小写加下划线(可以使用$model->_sql())来查看实际执行的sql是什么
这个问题,看了一下源代码,在 Thinkphp/Common/common.php里面,这个函数会将数据表(或视图)的大写字母转换为下划线+小写:
1 function parse_name($name, $type=0) {
2 if ($type) {
3 return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\1')", $name));
4 } else {
5 return strtolower(trim(preg_replace("/[A-Z]/", "_\0", $name), "_"));
6 //<feixiang 2013年7月6日 这里会将数据库表名里的大写转换为 _小写,这里不转换,在Model.class.php还将表转换成了小写,需要改一下 >
7 //echo $name ;
8 //return $name;
9 }
10 }
|
另外,在 Thinkphp/Core/Model.class.php里面,会将整个表名转换成小写:
1 public function getTableName() {
2 if(empty($this->trueTableName)) {
3 $tableName = !empty($this->tablePrefix) ? $this->tablePrefix : '';
4 if(!empty($this->tableName)) {
5 $tableName .= $this->tableName;
6 }else{
7 $tableName .= parse_name($this->name);
8 }
9 //<feixiang 这里会将表名转换成小写,我们这里不转换>
10 $this->trueTableName = strtolower($tableName);
11 //$this->trueTableName = $tableName;
12 }
13 return (!empty($this->dbName)?$this->dbName.'.':'').$this->trueTableName;
14 }
|
这样有好处——规范。
但是在我们的开发中,有大写的数据表,所以改了一下(注释的那些)...
或者可以在模型定义里面加上:
protected $trueTableName = 'myTableName';
来覆盖$this->trueTableName
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南