PHP5.12 + MySQLで開発をしているのですが、データを取得するときにカラム名の大文字小文字を区別しないようにする方法はあるのでしょうか。postgresqlだと区別していないようなのですが。


例.カラム名がbookNameの場合

postgresql
echo $data['bookname'] ←取得できる

MySQL
echo $data['bookname'] ←エラー

MySQLでpostgesqlのように取得ができるようにできればと思います。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/06/15 10:10:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kurukuru-neko No.1

回答回数1844ベストアンサー獲得回数155

ポイント40pt

設定変更で対応で動作を変更かのうですが。

大文字、小文字まじり名前を使っていると

小文字に修正が必要です。

6.1.3. 名前におけるケース依存

http://dev.mysql.com/doc/refman/4.1/ja/name-case-sensitivity.htm...

id:takets

ありがとうございます。

やはりpostgresqlのように何も考えずに小文字だけ、とはいかないようですね。

どうしてテーブル名がケース依存で、カラム名がケース非依存なのかが気になるところです。

2006/06/15 10:01:27
id:Sampo No.2

回答回数556ベストアンサー獲得回数104

ポイント40pt

function collower(&$data){

 foreach($data as $key=>$value){

  $data[ strtolower($key) ] = $value;

 }

}

なる関数を用意して、クエリ結果取得後に collower($data)として小文字でも取得できるように結果を加工してあげればよいでしょう。

http://search.net-newbie.com/php/function.strtolower.html

id:takets

ありがとうございます。

テーブル名をいじらないようにするには、このやり方がよさそうですね。

2006/06/15 10:09:25
id:kakicg No.3

回答回数44ベストアンサー獲得回数3

ポイント40pt

MySQLでは大文字小文字の区別がされるようです。その回避策が下にあります。

http://dev.mysql.com/doc/refman/4.1/ja/name-case-sensitivity.htm...

id:takets

ありがとうございます。

やり方を検討してみます。

2006/06/15 10:09:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません