XAMPP和表MySQL中的所有列在PHP

问题描述:

小写如果我的print_r($对象),我得到:XAMPP和表MySQL中的所有列在PHP

Array ([id] => 1 [ime] => rwe [letnica] => 0 [mesec] => 1 [datoteka] => [disciplineid] => 2 [rangtekmovanjaid] => 3) 

我的数据库列:

- disciplineId 
- rangtekmovanjaId 

我在设置lower_case_table_names=0。 ini for mysql 5.0部分的xampp,但是是一样的。哪里不对?

根据MySQL manual

如果你有不区分大小写的文件名 (如Windows或Mac OS X)系统 上运行MySQL您不应将此变量设置为0 。如果 您在此类 系统上将此变量设置为0,并使用不同的字母索引访问MyISAM表名 ,则可能导致索引 损坏。在Windows上, 默认值为1。在Mac OS X中, 默认值是2

MySQL: Identifier Case Sensitivity

在MySQL中,数据库对应数据目录中 目录。 数据库 中的每个表对应于数据库目录中的至少一个文件 (并且根据 存储引擎,可能更多的文件为 )。因此,底层操作系统的 区分大小写在 区分大小写的数据库和表 名称中起着一定的作用。这意味着数据库和表 的名称在 Windows中不区分大小写,并且区分大小写在大多数 各种Unix中。其中一个值得注意的是 例外是Mac OS X,它是基于Unix的 ,但使用默认文件 系统类型(HFS +),并非 敏感。

默认情况下,表的别名是区分 在Unix敏感,但不能因此就 Windows或Mac OS X.

这意味着,在Linux服务器(UNIX )表/列名称“Test”与“test”,“TEST”,“tESt”等默认值不等于

+0

但如果我移动页面从胜利到Linux然后一切都停止工作becouse列名是“rangtekmovanjaId”和在PHP中我必须使用“rangtekmovanjaId”而不是“rangtekmovanjaid”像在Windows中。那么我怎么能在Windows中“rangtekmovanjaId”在MySQL提交到MySQL的itentical到“rangtekmovanjaId”在PHP中,而不是像“rangtekmovanjaid” – senzacionale 2011-04-14 07:41:01

+0

mabye PHP的问题在这里? – senzacionale 2011-04-14 07:41:34

+1

@senzacionale - 不,它不是PHP ... MySQL导致问题。在上面的第一个引用中,你会发现'如果你在这样的系统上设置这个变量为0,并且使用不同的字母表访问MyISAM表名,那么可能会导致索引损坏。',我不知道任何其他解决方案,然后重写所有表名称改为小写扩展名。一年前我遇到过类似的问题,因为我只使用小写字母表示PHP和MySQL中的所有内容。 – Wh1T3h4Ck5 2011-04-14 07:51:28

要在XAMPP上修复此问题,请转到my.ini文件(例如C:\ xampp \ mysql \ bin中)并找到[mysqld]区域。

加入下面几行:

的lower_case_table_names = 0

重启你的Apache MySQL的&

现在你的表名是区分甚至在Windows系统上的敏感。