- ベストアンサー
ODBC接続時、SQL文で日本語テーブル名などは使えますか
PHPでODBCを使ってMDBに接続するところまではできたのですが SQL実行時にエラーが出ます。 SELECT * FROM 在庫 WHERE コード=0001 と言ったSQL文です。 SQLの文章的には問題ないと思うのですが 基本的なことかも知れませんが、MDBファイルのテーブル名や フィールド名(列名)を日本語にしています。 これはダメなのでしょうか? 回避策か設定法などよく分かりません。 どなたか教えて頂けると幸いです よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文字コードの問題じゃないですかね。 アクセスはShift_JISだったかな? PHPは?Webサーバーの文字コードは何になってます? EUC?UTF8? 両者の文字コードを同じにするか、コード内で変換かけてみたらどうでしょうか?
その他の回答 (2)
- ducati
- ベストアンサー率29% (308/1062)
回答No.3
#1です。 私から言えることは一度、すべて同じコードで統一してみる としか言えません。 アクセスは変更できないので、変更できるサーバー、PHPをSJISにしてみたらどうなるかテストしてみる。 それでも駄目なら別の原因が考えられますが、現在の状態ではこれ以上はわかりません。 まずは、Webサーバーの設定を調べてみる必要があるでしょう。 できないなら、やはり#2の方のいうように日本語は使わないようにするしかないかも。
- caceres
- ベストアンサー率43% (61/140)
回答No.2
使えたとしても使わないのが安全です。 ダメでなくとも安全に運用する上で現状のコンピュータ処理では 使わないのが安全です。 最終的な画面表示のみ日本語にするような扱いが無難です。 反論する方もいるでしょうがそのうちわかります。 答えになっていなくてすみません。
補足
回答ありがとうございます アクセスはSJISと聞いているので PHP4.4.5 を使っていまして PHPはUTF-8です そしてPHP.INIを以下のように設定しています output_buffering = On output_handler = mb_output_handler magic_quotes_gpc = Off default_charset = Shift_JIS extension_dir = C:/php/extensions extension=php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none あと、WEBサーバーは HTTPD1.4.2 を使っています しかしながら WEBサーバーの文字コードはどこで見たらいいか 分かりません。 このような感じで 何か間違い等ありましたら 教えて頂ければと思います。 よろしくお願いします。