[PHP-users 4769] PHP4+FteeTDS-MSSQL7.0にて日本語SQL

経営管理部 川原 php-users@php.gr.jp
Thu, 17 Jan 2002 12:02:57 +0900


川原と申します。

Apache + PHP4 + freeTDS - MSSQL7.0にて
日本語SQL文の使用方法がどうしてもわからず、
メールを送らせて頂きました。

現状、sybase関数をつかって
--------------------------------------------------------------
<?PHP

    $MS_server = sybase_connect("myserver","user","pass");
    $MS_database = sybase_select_db("dbname",$MS_server);
    
    $MS_sql = "SELECT 担当者コード FROM table";
    $MS_queryid = sybase_query($MS_sql, $MS_server);
    
    sybase_close($MS_server);

?>
--------------------------------------------------------------
等をブラウザで実行しますと、

Warning: Sybase error: L 1: '? n?k cj?LB?~Y. (severity 15) in /usr/home/www/test/testsql.php on line 7

といった、文字が化けたエラーメッセージが表示されます。
日本語が混じらないSQL文(SELECT * FROM tableなど)だと問題ありません。
mb_convert_encoding()を使ってSQL文をSJISに変換をかけても
解決できませんでした。

日本語SQL文をFreeTDS上で使用されている方がいましたら、
その使用方法を教えていただけないでしょうか。
よろしくお願いします。

-----------------------------------------------------------------------
Webサーバ環境

FreeBSD 4.4-STABLE
Apache apache_1.3.22 + mod_ssl-2.8.5-1.3.22
php-4.1.1 + pdflib-4.0.1
freetds-0.52(Portsでインストール)
postgresql-7.1.3

PHP4.1.1インストール時のオプション
./configure --with-pgsql --without-mysql --enable-track-vars \
--with-apxs=/usr/local/apache/bin/apxs --enable-trans-sid \
--enable-mbstring --enable-mbstr-enc-trans \
--with-sybase=/usr/local/etc/freetds --with-pdflib=/usr/local \
--with-gd2=/usr/local --with-tiff-dir=/usr \
--with-jpeg-dir=/usr/local --with-zlib=/usr --with-zlib-dir=/usr/local \
--with-png

-----------------------------------------------
freetds.confの内容

[global]
        tds version = 4.2
        initial block size = 512
        swap broken dates = no
        swap broken money = no
        try server login = yes
        try domain login = no
        cross domain login = no
[myserver]
        host = 192.168.1.111
        port = 1433
        tds version = 7.0
----------------------------------------------
interfacesの内容

myserver
        query tcp ether 192.168.1.10 1433
        master tcp ether 192.168.1.10 1433