解决办法:
创新互联为企业提供:成都品牌网站建设、网络营销策划、重庆小程序开发、营销型网站建设和网站运营托管,一站式网络营销整体服务。实现不断获取潜在客户之核心目标,建立了企业专属的“全网整合营销推广”,就用不着再为了获取潜在客户而苦恼,相反,客户会主动找您,生意就找上门来了!
就是修改thinkphp的源码中的Library/Db/Driver.class.php文件,把
PDO::ATTR_CASE = PDO::CASE_LOWER 改为 PDO::ATTR_CASE = PDO::CASE_NATURAL,
或者在配置文件里面增加
DB_PARAMS’ = array(\PDO::ATTR_CASE = \PDO::CASE_NATURAL) 这一句。
第一次使用的时候这种解决方法果然可以,但是做另外一个项目的时候却始终不生效,无奈,百度了半天,找到一个方法,因为thinkphp执行的时候默认会把大写转换成小写,所以我们找到它的源码不让它转换就行。
修改Common/functions.php里面的parse_name函数源码为:
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 $name;
}
其中注释掉的是原来的,未注释是新增的。
修改Library/Think/Model.class.php里面的getTableName函数:
//$this-trueTableName = strtolower($tableName); //这里会将表名转换成小写,修改成不转换
$this-trueTableName = $tableName;
修改其中一句,这样就可以解决数据库字段名大写的问题。
?php
function daxie($number){
$number=substr($number,0,2);
$arr=array("零","一","二","三","四","五","六","七","八","九");
if(strlen($number)==1){
$result=$arr[$number];
}else{
if($number==10){
$result="十";
}else{
if($number20){
$result="十";
}else{
$result=$arr[substr($number,0,1)]."十";
}
if(substr($number,1,1)!="0"){
$result.=$arr[substr($number,1,1)];
}
}
}
return $result."br";
}
echo daxie(7);
echo daxie(11);
?
只能是两位的
strtoupper
(PHP 4, PHP 5, PHP 7)
strtoupper — 将字符串转化为大写
说明
strtoupper ( string $string ) : string
将 string 中所有的字母字符转换为大写并返回。
注意 “字母” 与当前所在区域有关。例如,在默认的 “C” 区域,字符 umlaut-a(ä)就不会被转换。
参数
string
输入字符串。
返回值
返回转换后的大写字符串。
范例
Example #1 strtoupper() 范例
注释
Note: 此函数可安全用于二进制对象。
参见
strtolower() - 将字符串转化为小写
ucfirst() - 将字符串的首字母转换为大写
ucwords() - 将字符串中每个单词的首字母转换为大写
mb_strtoupper() - 使字符串大写
php自带函数,可以实现字母大小写的转换:
1. 所有字母变大写:strtoupper( )
2. 所有字母变小写:strtolower( )
?php
$str = 'abc';
$new_str = strtolower($str);
dump($new_str);
//结果是:string(3) "abc"
$new_str2 = strtoupper($new_str);
dump($new_str2);
//结果是:string(3) "ABC"
?
3. 字母大小写转换还有其它的:
每个单词的首字母转换为大写:ucwords( )
第一个单词首字母变大写:ucfirst( )
第一个单词首字母变小写:lcfirst( )