FreeTDSを使って橋渡しをするらしい。
イメージとしては、
PHP ⇔ FreeTDS ⇔ MsSqlServer
こんな感じの流れのようです。
とりあえず、FreeTDSでSqlServerにつかがるかを実験してみる。
先に unixODBCをインストールしている理由は、
FreeTDSはSybaseやSQL Serverと通信をするためのプロトコルであって(インターフェイス)、
DBへのアクセスをする場合にはODBCドライバを経由して行わなければならない。
らしい。
http://www.amy.hi-ho.ne.jp/jbaba/unix/tdsodbc.htm
↑ここに技術解説があった。みなさんここを見ているらしいです。
# yum install unixODBC-devel
ODBCドライバをインストール。
# yum install freetds-devel
FreeTDSをインストール。
freetdsにSqlServerの設定をする。
# nano /etc/freetds.conf
末尾に
[sqlserver]
host = DBサーバアドレス
port = 1433
tds version = 8.0
charset = sjis
client charset = utf-8
language = japanese
を加える。
charset は デフォルトはCP932だが、今回のベンダの設定では
SeqServerに定義したエンコードはsjisだったようだ。
エンコード関係でやはり30分ほど嵌った。
# tsql -S sqlserver -U ユーザ名 -P パスワード名
locale is "ja_JP.UTF-8"
locale charset is "UTF-8"
1>
となれば接続成功。
1>select * from テーブル名
2>go
このように使う。
ここまでが事前準備。
接続実験
$server=’DBサーバアドレス’;
$username='ユーザ名';
$password='パスワード';
$con=mssql_connect($server,$username,$password);
if($con !=FALSE)
{
echo "Connection to SqlServer successful
";
}
else
{
die("Connection to SqlServer failed");
}
mssql_close($con);
?>
次は、二つのDBを跨いだときの取り扱いを残す予定。