データベーステーブル名の最初の文字がどこでも大文字であるが、データベース内のテーブル名が小文字であるphpコードがあります。
データベースと同じケースでテーブル名を作成するためにすべてのコードファイルで変更する必要がないように、どのグローバル設定を使用する必要がありますか。
データベーステーブル名の最初の文字がどこでも大文字であるが、データベース内のテーブル名が小文字であるphpコードがあります。
データベースと同じケースでテーブル名を作成するためにすべてのコードファイルで変更する必要がないように、どのグローバル設定を使用する必要がありますか。
Linux では、MySQL メタデータはデフォルトで大文字と小文字が区別されます。つまり、小文字のテーブル my_table がある場合、
select * from my_table
しながら成功する
select * from MY_TABLE
ある種のテーブルが存在しないというメッセージで失敗します。
両方のステートメントを成功させたい場合は、/etc/my.cnf または MySQL 構成を保存している場所に次の行を入れる必要があります。システム変数を構成ファイルの [mysqld] セクションに必ず追加してください。
mysql 識別子を確認する必要があります。
lower_case_table_names
my.ini
ディレクトリにあるファイルを確認する必要がありますmysql
。移行元と移行先のオペレーティング システムの詳細については、次を確認してください。
http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
上記の URL からの抜粋:
1 つのプラットフォームのみで MySQL を使用している場合、通常、lower_case_table_names 変数をデフォルト値から変更する必要はありません。ただし、ファイル システムの大文字と小文字の区別が異なるプラットフォーム間でテーブルを転送する場合は、問題が発生する可能性があります。たとえば、Unix では、my_table と MY_TABLE という名前の 2 つの異なるテーブルを持つことができますが、Windows では、これら 2 つの名前は同一と見なされます。データベース名またはテーブル名の大文字と小文字が原因で発生するデータ転送の問題を回避するには、次の 2 つのオプションがあります。
Use lower_case_table_names=1 on all systems. The main disadvantage with this is that when you use SHOW TABLES or SHOW DATABASES, you do
元のレターケースで名前が表示されません。
Use lower_case_table_names=0 on Unix and lower_case_table_names=2 on Windows. This preserves the lettercase of database and table names.
これの欠点は、ステートメントが常にデータベース名とテーブル名を Windows 上で正しい文字で参照するようにしなければならないことです。大文字と小文字が重要な Unix にステートメントを転送する場合、大文字と小文字が正しくないと機能しません。