[PHP-users 3953] シフトJISにしないとデータが読めない
shinmori toshiaki
php-users@php.gr.jp
Wed, 28 Nov 2001 17:37:42 +0900
新守@CBと申します。
以下のような環境で実験しています。
Webサーバー
Readhat 7.1J
Apache 1.3.20
php 3.0.18-i18n-ja
データベースサーバー
WindowsNT 4.0
Oracle 8.1.6(表名はマルチバイト文字を使用)
この環境で、phpでデータベースに接続し、SQLを実行するとエラー
(ORA-00911)になってしまいました。
SQLをシフトJISに変換し、SQLを実行すると正常終了します。
ここで疑問なのですが、シフトJISのサーバーへのSQLって
サーバーの文字コードに合わせる必要があるのでしょうか?
もしくは何か設定が不足しているのでしょうか?
ちなみにWebサーバーからsqlplusを使用した場合は問題なく読み
出せるのでphpにからんだ設定が不足していると思っているのですが・・。
助言等よろしくお願いします。
以下実験したサンプルコードです。
<?php
$dbora = OCINLogon("hoge","hoge","hoge");
$sql = "select 店舗コード,店舗カナ名称,店舗漢字名称 from 店舗マスタ";
// シフトJISへ変換
$sql = i18n_convert($sql,"SJIS","EUC");
$par = OCIParse($dbora,$sql);
if($par == false){
echo "error\n";
exit;
}
$res = OCIexecute($par, OCI_DEFAULT);
if($res == false){
echo "error\n";
exit;
}
echo $res;
OCILogOff($dbora);
?>
+----+----+----+----+----+----+----+
(株)コンピューター・ビジネス 新守
e-mail: shinmori@cbnet.co.jp
+----+----+----+----+----+----+----+