PHPからSQLServerに接続する場合、PHPマニュアルを見ると
Linuxから接続する場合FreeTDSというライブラリを使用する必要があります。
FreeTDSのインストール手順については、以下の手順で行います。
#ソースを展開する
tar xvzf freetds-stable.tgz
cd freetds-0.64
#Makefileを作成する
./configure
#コンパイル & インストール
make
make install
次にFreeTDSの設定を行います。
設定ファイルはfreetds.confという名前で作成されています。
[MSSQL_TEST]
# SQLServerのIPアドレスを入力します
host=192.168.1.21
# SQLServerのポート番号を入力します。特に指定しない場合1433がデフォルトです。
port=1433
# TDSプロトコルのバージョンを入力します。SQLServer 2000,SQLServer2005の場合8.0を入力します。
tds version = 8.0
# クライアントの文字コードを指定します。
client charset = UTF-8
◆SQLServerへの接続確認
tsqlというコマンドを用いてLinux端末からFreeTDS経由でSQLServerに接続できるか
確認します。
# -U の後にデータベースログインユーザー名
# -P の後にデータベースログインパスワード
tsql -S MSSQL_TEST -U ユーザー名 -P パスワード
# 以下のように1>と表示されれば、接続成功となります。
1>
※locale is~やlocale charser is~などのメッセージが表示された場合には、
クライアントの実際の文字コードと、設定に記述した文字コードが異なっているため
表示されます。
◆PHPから接続する
PHPには、mssql_で始まるSQLServer用の関数があらかじめ用意されているので、
それを使います。
ただし、標準では組み込まれていないため、http://phprpms.sourceforge.net/mssql などでパッケージを
探すか、PHPをソースからコンパイルしてインストールする必要があります。
コンパイルする場合には、--with-mssqlオプションをつけることで、mssql関数が使用可能となります。
ここまででようやくPHPとSQLServerを接続する準備が整いましたので、
PHPのコーディングに取り掛かれます。
今回は、DB接続にPearのDBを使用します。
PHPの文字コードは、FreeTDSの設定でクライアントの文字コードをUTF-8にしたので
それに合わせます。
require_once "DB.php";
$dsn = "mssql://ユーザー:パスワード@FreeTDSの設定名/DBの名前";
$conn = DB::connect($dsn);
if (DB::isError($conn)) {
echo "DB接続エラー";
}else{
echo "DB接続成功";
}
$conn->disconnect();
?>
正しく設定されていれば、画面上に「DB接続成功」と表示されます。
以上で、Linux環境でPHPからSQLServerに接続が可能となります。