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


例.カラム名がbookNameの場合

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

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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/06/15 00:13:17
  • 終了:2006/06/15 10:10:23

回答(3件)

id:kurukuru-neko No.1

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/06/15 00:32:10

ポイント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

Sampo回答回数556ベストアンサー獲得回数1042006/06/15 00:33:12

ポイント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

kakicg回答回数44ベストアンサー獲得回数32006/06/15 08:20:39

ポイント40pt

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

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

id:takets

ありがとうございます。

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

2006/06/15 10:09:49

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません