[PHP-users 4775] Re: PHP4+FteeTDS-MSSQL7.0にて日本語SQL
php-users@php.gr.jp
php-users@php.gr.jp
Thu, 17 Jan 2002 15:16:49 +0900
大野と申します。
私のところでも同様な環境を使用しているので、レスいたしました。
環境は、
OS:FreeBSD 4.4-RELEASE
apache-1.3.22 + php-4.1.0 + freeTDS-0.53 - MSSQLServer6.5(WinNT4.0)
この環境で、試しに、日本語を含むSQL文を発行してみましたが、
正常に検索できました。
川原さんと違うところは、分かる範囲で、
1)sybase関数ではなくて、MSSQLサーバ関数を使っている
MSSQLサーバ関数 != sybase関数なところが何かある?
(すみません、私もわかりません)
2)FreeTDSのバージョンが違う、また、ソースからコンパイルしている
./configure --with-tdserver=4.2 --enable-msdblib
でconfigureしています。
3)MSSQLServerのバージョンが違う
6.5と7.0で何が違うのかわかりませんので、何ともいえないです。
ただし、接続テストはしたことがあります。(日本語なしで)
そのときのinterfacesファイルには、以下のように明示的にtds4.2を
指定しました。(そうしないと接続できなかった記憶があります)
myserver
query tcp tds4.2 192.168.69.17 1433
master tcp tds4.2 192.168.69.17 1433
ぐらいです。
私が、テストしたPHPサンプルコードは、以下の通りです。
#テーブル名、ホスト、ユーザ、パスワードは、変えてあります。
----------------------------------------------
<html>
<head>
<title>example</title>
</head>
<body>
MSSQLへの接続テスト<br><br>
<pre>
<?php
$query="select 担当者コード FROM table";
$query_sjis=mb_convert_encoding ($query, "SJIS");
echo $query_sjis;
if ($c = mssql_pconnect('myserver','user','pass') {
echo "成功!\n";
if ($r = mssql_query($query_sjis, $c)) {
while($row = mssql_fetch_row($r)) {
echo "========== next row ============\n";
while (list($k, $v) = each($row)) {
echo "\$row[$k] => $v\n";
}
}
} else {
echo "queryの送信に失敗!\n";
}
mssql_close($c);
} else {
echo "失敗。\n";
}
?>
</pre>
</body>
</html>
------------------------------------------------
以上です。
*------------------------------------------------*
山武ビルシステム株式会社
計装エンジニアリングセンター
大野 浩之
E-Mail:ohnohiro@ise.ybs.yamatake.co.jp
Savemation by Yamatake Building Systems Co.,Ltd.
*------------------------------------------------*