|
PHPでSQLServerに接続する
OSがlinuxで、PHPでSQLServerに接続する場合には二つの方法があります。
ODBC経由で接続するか、sybaseのインターフェースを用います。
何故、sybaseかと言うと、もともとマイクロソフトのSQLServerは、
sybase社のSQLServerのライセンスを買い取って、改良していったという
経緯があってインターフェースも共通となっています。
sybaseがlinux用に公開しているクライアントライブラリを用いてもいいのですが、
今回はsybaseデータベース,SQLServer両方に接続できる
フリーなライブラリ「FreeTDS」を用います。
【手順】
1. FreeTDSのインストール・設定
FreeTDSのダウンロード (2003年4月現在var0.61が最新です。)
$ tar xzvf freetds-0.61.tgz
$ cd freetds-0.61/
$ ./configure -with-tdsver=8.0 --prefix=/usr/local/freetds/
$ make
$ su
Password:
# make install
これで、/usr/local/freetds/以下にインストールされます。
freetds.confの設定
接続するサーバの接続文字列を追加する。
/usr/local/freetds/etc/freetds.conf
[server名]
host = IPアドレス、または、ドメイン名
port = 1433
tds version = 8.0
2. PHPに組み込み・設定
configureオプションに下記の一文を追加
--with-sybase=/usr/local/freetds/
再コンパイル
SQLServerへの接続関数mssql_***は、sybase_***と共用です。
mssql_***関数が呼ばれてモジュールがなければ、sybaseモジュールを呼びます。
もしくは、--with-odbc=/usr/local/freetds/でもいいかと。
ただし、その場合は、odbc関数を使います。
php.iniの設定変更
sybase.interface_file = "/usr/local/freetds/etc/freetds.conf"
apacheの再起動
3. 使い方
sybase_connect ( server名, ユーザ名, パスワード)
この場合のserver名は、freetds.confで設定した名前です。
PEARで使う場合は、DB.phpやmssql.phpに手を入れないと駄目なケースがあるようです。
バージョンの違いか、私の場合はすんなり使えました。ご参考に
【参考にしたサイト】
FreeTDS を使った UNIX ODBC ドライバの製作
FreeTDS.org
|