`

PHP+MYSQL大小写问题

阅读更多

[PHP]
一、大小写敏感

1. 变量名区分大小写

所有变量均区分大小写,包括普通变量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$_FILES,$_ENV等;

 

<?php

$abc= 'abcd';

echo$abc; //输出 'abcd';

echo$aBc; //无输出

echo$ABC; //无输出

2. 常量名默认区分大小写,通常都写为大写

 

<?php

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. NULLTRUEFALSE不区分大小写

 

$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
  1. #If set to 0, table names are stored as specified and comparisons are case sensitive.   
  2. #If set to 1, table names are stored in lowercase on disk and comparisons are not case sensitive.   
  3. #If set to 2, table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.  
  4. 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

分享到:
评论

相关推荐

    基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip

    基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip基于原生JS+PHP+MySql写的手表商城网站源码含sql数据库.zip基于原生JS+PHP+MySql写的手表商城...

    php + mysql 个人博客系统

    【PHP + MySQL 个人博客系统】 在Web开发领域,PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,特别适用于服务器端编程,而MySQL则是一款流行的关系型数据库管理系统,两者结合可以构建功能强大的...

    php+MySQL新手自写留言本

    【PHP+MySQL新手自写留言本】:这是一个适合初学者的项目,旨在帮助那些正在学习PHP和MySQL的朋友们快速搭建一个实用的在线留言系统。在这个系统中,用户可以提交留言,管理员可以进行回复,同时支持文件上传功能。...

    php +mysql 小型图书管理系统

    《PHP + MySQL小型图书管理系统详解》 在信息技术领域,PHP和MySQL是两个极其重要的工具,它们共同构建了许多高效、稳定的Web应用程序,其中小型图书管理系统就是典型应用之一。本篇文章将深入探讨如何使用PHP和...

    PHP+MySQL学习文档

    在字符串处理方面,PHP提供了丰富的函数,如`strlen`计算字符串长度,`strpos`查找子串位置,`strtolower`和`strtoupper`转换大小写。此外,还有用户自定义函数,你可以根据需求创建自己的功能模块。 对于数据库...

    PHP+MYSQL中小企业网站系统

    【PHP+MYSQL中小企业网站系统】是一个专为中小企业设计的基于PHP编程语言和MySQL数据库的精简版网站系统。这个系统旨在提供高效、稳定且易于维护的解决方案,帮助企业快速搭建在线平台,实现信息展示、产品推广、...

    php+Mysql笔试题及答案

    10. 以下代码运行结果(B):`strstr()`在字符串中查找子串首次出现的位置,`stristr()`对大小写不敏感,所以结果是" is Linux"。 11. 以下代码运行结果(A):将字符串拆分成数组,再用逗号连接,结果为"This,course,...

    php+mysql常用函数

    最后,`sql_regcase()`函数是一个不太常见的函数,它创建一个根据字符大小写转换的字符串,这对于SQL查询中的大小写不敏感匹配非常有用,尤其是在数据库中执行搜索操作时。 以上就是PHP中的一些常用函数,它们涵盖...

    PHP + MYSQL 综合开发 2

    变量在使用前必须先声明,并且其名称是大小写敏感的。PHP支持多种数据类型,如字符串、整型、浮点型、布尔型、数组和对象等。变量以美元符号 ($) 开始,后跟变量名。 2. **浮点型(第11讲)**: 在PHP中,浮点型用于...

    php7+nginx1.11+mysql5.6+yaf+redis

    还有对分区表、全文搜索和复制功能的增强,使得MySQL5.6更适合大规模、高并发的数据库应用场景。 【Yaf】 Yaf(Yet Another Framework)是由腾讯开发的一款PHP全栈框架,专为PHP7设计。Yaf利用PHP的C扩展实现,提供...

    在Windows7中安装Apache+PHP+MySQL.pdf

    值得注意的是,在Windows系统中,路径表示为"D:\php",而在PHP配置文件中,路径应写为"D:/php"。 接下来,我们安装MySQL,这是一个关系型数据库管理系统,广泛应用于数据存储。MySQL可以从官方网站下载Windows版本...

    ffs_mysql_v4.4.rar_基于php+Mysql

    FFS-M快速文件分享系统是一款基于PHP和MySQL数据库的文件分享解决方案。该系统设计的核心目的是为了方便用户上传、管理和分享各类文件。在部署和运行FFS-M系统之前,需要确保你的服务器环境已经安装并配置了PHP和...

    PHP+MySQL网络开发从入门到精通_源代码

    《PHP+MySQL网络开发从入门到精通》是启明工作室精心编著的一本教程,旨在帮助初学者系统地掌握PHP和MySQL这两种强大的Web开发技术。该教程提供的源代码涵盖了从基础到进阶的各种实例,旨在让学习者通过实践加深理解...

    用户学生信息管理系统,后端使用SpringBoot+mybait+mysql写的简单的信息管理.zip

    首先,SpringBoot作为后端开发框架,以其快速开发、内嵌Tomcat服务器、自动配置等特性,极大地简化了项目的构建过程。SpringBoot集成了大量的Spring生态组件,使得开发者可以专注于业务逻辑,而无需过多关注底层配置...

    网络硬盘(PHP+Mysql)

    - **文件重命名**:为了防止文件名冲突和避免潜在的安全问题,通常会在上传时为文件生成唯一的文件名或哈希值。 - **权限管理**:实现用户角色和权限控制,如读、写、删除权限,确保数据安全。 - **分块存储**:对于...

    DebianLNMP虚拟主机管理工具Nginx+PHP5.3+MySQL管理软件

    友情提示:Linux下操作请注意大小写。 Debian 6最好系统为干净新系统。 支持与交流QQ群:【10171789】开源通关注明“DebianLNMP-Jimmyli版”才通过 支持与交流网址:http://jimmyli.jimmyli.blog.51cto.com/最新版本...

    我用php+mysql写的留言本

    《使用PHP+MySQL构建留言本系统》 在Web开发领域,PHP与MySQL是常见的组合,用于构建动态、交互式的网站应用。在这个实例中,我们看到一个简单的留言本系统的实现,它利用了PHP作为服务器端脚本语言处理用户提交的...

    Apache+php+mysql在windows下的安装与配置图解(最新版).pdf

    如果在启动Apache服务时遇到错误,需要检查配置文件中的语法错误,比如路径设置错误、文件名大小写不正确等。 要测试PHP是否正确配置,可以在网站根目录下创建一个名为`info.php`的文件,并在文件中添加以下代码: ...

Global site tag (gtag.js) - Google Analytics