[PHP-users 9027] Re: MS SQLServer への接続

Tatsuya Matsuyama php-users@php.gr.jp
Mon, 29 Jul 2002 20:56:20 +0900


松山と申します。

----- Original Message ----- 
Sent: Sunday, July 28, 2002 4:32 PM
Subject: [PHP-users 9003] MS SQLServer への接続


> linux 2.2.19 + Apache 1.3.26 + SSL 0.9.6d + PHP4.2.2

RedHat7.3J+ Apache 1.3.26 + PHP4.2.2 + freeTDS0.53
から
NT4.0+SQLserver7.0
という構成で使っています。

> http://www.amy.hi-ho.ne.jp/jbaba/unix/unixodbc1.htm
> にて、「 FreeTDS の ODBC の実装は、まだまだ不十分です。 」
> と記されているように、現段階では実用化直前(=非実用的)と
> いう理解で間違っていないでしょうか。
> 

スタートとゴールをどこに置くのかによると思います。

私のところでは、
30名程度の会社の基幹DBとして運用していますが、
これといって問題はありません。

Accessも使う既存DBにオーバーラップさせる形で
Webアプリを構築しましたが、併用しても問題ありません。

> http://www.asakawa.ne.jp/doc/php/ja/sjis/ref.mssql.html
> では、一通りの関数の Entry は用意されていますが
> やっぱり肝心の ODBC が、、、日本語が混じるとさらに
> 問題があったりするのでしょうか。

漢字のフィールド名を通すのか私は調べていません。
データは問題なく扱えています。

私の場合は、
既存DBに多数の漢字名フィールドがありましたが、
テーブル構成の確認も兼ねて、
必要なテーブルをviewにアルファベットで登録しなおして
使っています。

スタートの時点で、このような作業が現実的でないなら
難しいかもしれません。

また、ゴールをSQLserverの完全動作に求めるなら
それもまた、難しいかもしれません。

私のところでどうしても不可避の問題として、
「phpからSQL認証の失敗を拾えない」があります。

例えば、phpマニュアルにある以下のコードですが、

$conn = pam_auth($username, $password, &$error);
if (!$conn) {
      echo $username,"+", $password,"=",$error;
      exit;
}

$username, $password共に半角アルファベットなのですが、
上記の構成では、間違えるとsegmentation_faultでphpのプロセスが落ちてしまい、
画面には「アクセスできません」エラーが表示されてしまいます。

回避するには、認証を別途用意してあげる必要があります。

このような試行錯誤を少しでも減らしたいなら、
最初からasp+SQLでいく方が時間の節約にはなると思います。

以上、参考までに。