Очень многие веб-разработчики работают на компьютерах под управлением операционной системы семейства Windows и не замечали проблемы с запросами не скопировав сайт на хостинг под управлением на *nix.
Вот тут и начинаются все беды. Запросы выдают ошибки, а локально все работает. Все потому, что имя таблицы или базы начинается с заглавной буквы. Уже долгое время среди разработчиков и тех занимается продвижением сайта ведутся споры - должны ли системы как локальные операционные так и поисковые зависеть от регистра символов?
Для примера создадим таблицу с заглавной буквой:
CREATE TABLE `Table_test` (
`id` INT(11) NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) COLLATE=utf8_general_ci ENGINE=MyISAM
Сервер создаст файл с именем Table_test
и при обращении к этой таблице запросом
SELECT `id` FROM `Table_test`;
обратится к файловой системе за файлом Table_test
. В семействе Windows имена файлов регистронезависимые, а в *nix все наоборот.
По этому на *nix системе при запросе
SELECT `id` FROM `table_test`;
сервер отдаст ошибку, а в Windows запрос будет рабочим на все 100%.
Решение придумали сами создатели MySQL. Для игнорирования регистра в запросе есть переменная lower_case_table_names
, которую необходимо внести в my.ini