我理解“TABLE”名称区分大小写(取决于操作系统,Linux或Windows),但我发现字段名称也区分大小写。我读了几个地方说他们不是。我在TABLE NAMES上找到了很多信息,但在FIELDNAMES上却没有太多信息。
但是这个例子给出了错误的抱怨。
fieldname =“姓名” 如果我做了以下 - 它出错了
编辑:忘了:寻找运行时修复,因为这不是我的数据库。
SELECT * FROM some_table WHERE name = 'something'
除非我将'name'
更改为'Name'
,否则会出错。
2个问题
如果这对我来说是一个错误,那么我错了什么?
如果没有,是否有一个标志设置来控制它。似乎开发人员在数据库中出现问题,有时他们会因为w / e原因而更改字段,最终会使用camelCase。
似乎我必须编写冗余代码以适应区分大小写的搜索。 (这就是为什么我认为我可能会出错)
答案 0 :(得分:0)
这是基于你的评论,即PHP与echo $ result区分大小写[' 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.");
}
答案 1 :(得分:-1)
我认为你机器上mysql的lower_case_table_names系统变量设置为0,这是区分大小写的
如果设置为0,表名将按指定的方式存储,并且比较区分大小写。如果设置为1,则表名称以小写形式存储在磁盘上,并且比较不区分大小写。如果设置为2,则表名称将按给定方式存储,但会以小写形式进行比较。此选项也适用于数据库名称和表别名。
供您参考,请参阅以下链接。 http://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html
我希望这能解决你的问题