php mysql不大小写吗,PHP+MYSQL大小写有关问题
[PHP]
一、大小寫敏感
1.變量名區分大小寫
所有變量均區分大小寫,包括普通變量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$_FILES,$_ENV等;
$abc= 'abcd';
echo$abc; //輸出'abcd';
echo$aBc; //無輸出
echo$ABC; //無輸出
2.常量名默認區分大小寫,通常都寫為大寫
define("ABC","Hello World");
echoABC;?? //輸出Hello World
echoabc;?? //輸出abc
3. php.ini配置項指令區分大小寫
如file_uploads = 1不能寫成File_uploads = 1
二、大小寫不敏感
1.函數名、方法名、類名不區分大小寫,但推薦使用與定義時相同的名字
functionshow(){
echo"Hello World";
}
show(); //輸出Hello World推薦寫法
SHOW(); //輸出Hello World
classcls{
staticfunctionfunc(){
echo"hello world";
}
}
Cls::FunC();? //輸出hello world
2.魔術常量不區分大小寫,推薦大寫
包括:__LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、__NAMESPACE__。
echo__line__;? //輸出2
echo__LINE__;? //輸出3
3. NULL、TRUE、FALSE不區分大小寫
$a= null;
$b= NULL;
$c= true;
$d= TRUE;
$e= false;
$f= FALSE;
var_dump($a== $b); //輸出boolean true
var_dump($c== $d); //輸出boolean true
var_dump($e== $f); //輸出boolean true
4.類型強制轉換,不區分大小寫
包括
§(int),(integer) –轉換成整型
§(bool),(boolean) –轉換成布爾型
§(float),(double),(real) –轉換成浮點型
§(string) –轉換成字符串
§(array) –轉換成數組
§(object) –轉換成對象
$a=1;
var_dump($a);? //輸出int 1
$b=(STRING)$a;
var_dump($b);? //輸出string ';1'; (length=1)
$c=(string)$a;
var_dump($c);? //輸出string ';1'; (length=1)
[MYSQL]
一、.MySQL大小寫敏感規則
原理:MySQL中,一個庫會對應一個文件夾,庫里的表會則以文件的方式存放在文件夾內,所以,操作系統對大小寫的敏感性決定了數據庫和表的大小寫敏感(MySQL有一個只讀的系統變量lower_case_file_system,其值反映的正是當前文件系統是否區分大小寫)
規則:在Windows下Mysql的數據庫和表名是大小寫不敏感的,而在大多數類型的Unix系統中是大小寫敏感的。
以下是MySQL詳細的大小寫區分規則:
在Linux下:
1、數據庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;
在Windows下:
1、全部不區分大小寫
2、補充:
1> MySQL中有一個系統變量:lower_case_table_names,專門用來配置是否區分據庫名與表名的大小寫。 如果你的系統是Windows,而你又希望mysql能夠區分大小寫,那么你可以在my.ini文件中,在[mysqld]一節的最后,加入如下部分:
[plain]view plaincopy
#If?set?to?0,?table?names?are?stored?as?specified?and?comparisons?are?case?sensitive.
#If?set?to?1,?table?names?are?stored?in?lowercase?on?disk?and?comparisons?are?not?case?sensitive.
#If?set?to?2,?table?names?are?stored?as?given?but?compared?in?lowercase.?This?option?also?applies?to?database?names?and?table?aliases.
lower_case_table_names=0
2> MySQL在查詢字符串時是大小寫不敏感的。如某字段值需要區分大小寫,可在定義該字段時指定BINARY屬性。
二、一種MySQL命名規范為了避免大小寫引發的問題,一種推薦的命名規則是:在定義數據庫、表、列的時候全部采用小寫字母加下劃線的方式,不使用任何大寫字母。
三、關于Hibernate/JPA數據庫schema自動映射的問題
使用Hibernate/JPA的工程可以自動生成數據庫的schema,由于java有著自己的類與字段命名規則,這與mysql推薦的命名規則不太相符,于是出現了follow哪一種命名規范的問題。一般來說這會由團隊和DBA協商確定,使用mysql的命名規范不會出現大小寫帶來的問題,對于DBA來說可能也更加友好,而使用java的命名規范則對開發人員來說無疑是更加友好的,這將省去列名的映射配置,同時也方便開發人員查看數據庫。如果你的項目使用了后者,你最好像上面講到的,設置一下lower_case_table_names=0。
總結
以上是生活随笔為你收集整理的php mysql不大小写吗,PHP+MYSQL大小写有关问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php call_user_func和,
- 下一篇: oracle 的目录是空的,oracle