2016-07-10 6 views
0

Я понимаю, что имена «TABLE» чувствительны к регистру (в зависимости от ОС, linux или окон), однако я обнаружил, что имена полей также чувствительны к регистру. Я читал несколько мест, говоря, что они НЕ. Я нашел много информации о TABLE NAMES, но не много на FIELDNAMES.mysql case Неиспользуемые имена полей

Однако этот пример вызывает ошибки.

имя_поля = «Имя» если я делаю следующее - это ошибки из

редактировать: забыли: ищет время выполнения исправить, поскольку это не моя дб.

SELECT * FROM some_table WHERE name = 'something' 

Это получает ошибку, если я не изменить 'name' к 'Name'. 2 Вопросы Если это ошибка с моей стороны, что я делаю неправильно? Если нет, есть ли флаг для управления этим. Похоже, когда обезьяна-разработчики с базой данных, иногда они меняют поля по причине w/e, и заканчивают работу с camelCase.

Кажется, что я должен написать избыточный код, чтобы учитывать случаи, чувствительные к регистру. (Вот почему я думаю, что могу ошибаться)

Спасибо!

+0

Я на самом деле переделали это немного по-другому, по-видимому, ошибка не из самого запроса из из строки результата [код] в то время как ($ результат = mysql_fetch_assoc ($ SQL)) { эхо $ результата [ 'Title «]; } [/ code] результат чувствителен к регистру - как это предотвратить? – Cain

+1

[«Столбец, индекс, хранимая процедура и имена событий не чувствительны к регистру на любой платформе, а также псевдонимы столбцов»] (http://dev.mysql.com/doc/refman/5.7/en/identifier-case- sensitive.html), поэтому, пожалуйста, разместите точную 'CREATE TABLE' и вывод ошибки. – bishop

ответ

-1

Я думаю, что системная переменная lower_case_table_names для MySQL на вашей машине установлен в 0, которая для случая чувствительной

Если установлено значение 0, имена таблиц сохраняются, как указано и сравнения чувствительны к регистру. Если установлено значение 1, имена таблиц хранятся в нижнем регистре на диске, а сравнения не чувствительны к регистру. Если установлено значение 2, имена таблиц сохраняются как заданные, но сравниваются в нижнем регистре. Этот параметр также применяется к именам баз данных и псевдонимам таблиц.

Для справки см. Приведенную ниже ссылку. http://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

Я надеюсь, что это решит вашу проблему

0

Это основано на том, что ваш комментарий PHP чувствителен к регистру с эхо $ результата [ «Title»];

Вот функция PHP, которая позволяет использовать индексы без учета регистра в PHP для ассоциативных массивов.

$test = array("Name"=>"Russell"); 
echo value($test,"name"); 

function value(&$row,$field) { 
    // Get the value of a field. 
    foreach($row as $key=>$value) { 
     if (strcasecmp($key,$field)==0) { 
      return $value; 
     } 
    } 
    throw new Exception("Field $field wasn`t found."); 
} 
+0

Спасибо, Рассел, я думаю, что это делает tricfk, я надеялся, что я неправильно прочитал документы и подумал, что есть переключатель, который я мог бы использовать в запросе SELECT. Вы можете записать его в файле .ini, но не на самом деле. Я хочу идти. Я буду возиться с этим и посмотреть, кто это работает. – Cain

Смежные вопросы