僕にはアメブロは合わなかったよ。
投稿するエディタが貧弱過ぎる。
見出しと段落が付けられず、HTMLタグで編集するなんてやってられない。
不満は「はてなBlog」に長々と書いておいた。
はてな参戦の理由
新しい記事は「はてなBlog」に書きます。
もしご興味があれば見て頂けると幸いです。
http://arachansan.hatenablog.com/
FreeTDSはSybase,Microsoft SQL Serverとデータのやり取りをするためのプロトコルである。
これだけでは、PHPにデータを取得できない。
PHP側にもSybase、Microsoft SQL Serverとデータのやり取りをする関数を入れる。
図解するの下記のようになる。
DBLib(PHP) < - FreeTDS <- SQL Server下記のようにapt-getでインストールします。
今回はソースからコンパイルはしません。
$ sudo apt-get install php5-sybase freetds-commonfreetds.confに設定を追加する。
条件は下記のようになる。
freetds.confファイルは、検索すると2つある。
しかし、apache 等のサーバーが使うconfファイルは /etc/freetds/freetds.confである。
freetds.confの場所は以下のコマンドで確認できる。
プログラム 'tsql' はまだインストールされていません。
次のように入力することでインストールできます:
sudo apt-get install freetds-bin
下記のようにインストールしましょう。
$ sudo apt-get install freetds-bin
$ tsql -C
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 4.2
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: no
freetds.conf directory:/ と太字になっている部分がfreetds.confのある場所です。
設定条件もfreetds.confの場所も確認しました。
実際にfreetds.confファイルを編集します。
今回の設定条件だと freetds.conf は以下のように追加します。
$ sudo vi /etc/freetds/freetds.conf
## ## /etc/freetds/freetds.conf各パラメーターの詳しい設定項目は下記サイトのTable 3-2. freetds.conf settingsを参照 freetds.conf
##
[RDBSERVER] ##hostname になる
host = 192.168.0.3 ##接続するDBのIPアドレスを入れる
port = 1433 ##SQL Server2000以降、標準のportは1433
tds version = 7.2 ##SQL Server2005,2008R2 Expressは7.2
charset = CP932 ##SQL Server側の文字コードセット
client charset = UTF-8 ##Client(Linux)側の文字コードセット
tsqlというコマンドで接続できるかどうかを確認します。
接続ができれば設定はできています。
下記のように接続します。
$ tsql -S RDBSERVER -U sa -P passwordfreetds.confの[ ]で囲まれた部分、 ここでは[RDBSERVER] を指定します。
-U username
データベースのユーザー名
-P passowrd
データベースのパスワードを指定します。
1> となっていれば接続成功
失敗していればfreetds.confの設定がおかしいかと思います。
下記のサイトを参照して原因を突き止めましょう。
http://freetds.schemamania.org/userguide/confirminstall.htm http://freetds.schemamania.org/userguide/serverthere.htm#SERVERTHERE.TSQLちなみにtsqlで接続後
下記のようにSQL文を実行します。
1>use master
2>go
1>select @@version
2>go
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (Intel X86)
(1 row affected)
1> quit
quitで抜けます。
SQL Serverのバージョンを表示する為の特殊なSQL文。
SQL Serverのどのデータベースを指定していても実行できる。
1行だけ表示するのでテストで表示するのにぴったりです。
少し条件を厳しくして、 日本語データベース、日本語テーブル、日本語カラムを作成して表示させてみます。
1>create database 日本語テーブル達
2>go
1>use 日本語テーブル達
2>go
1>create table 名前リスト(
2>ID int IDENTITY(1,1) PRIMARY KEY,
3>名前 nvachar(40)
4>)
5>go
1>insert into 名前リスト(名前)
2>values(‘織田 信長’)
3>go
1>select * from 名前リスト
2>go
ID 1 (1 row affeted)
1>
文字化けしていなければ問題無し。
もし、文字化けしていればfreetds.confのcharsetとclient charsetを見直しましょう。
$ tasksel lamp-server
でインストールされているものとします。
apacheのwwwrootに移動します。
$ cd /var/www
phpファイルを作成します。
$ vi mssql2008r2.php
---以下 msssql2008R2.php ソースコード
ブラウザで表してみましょう。
url: http://localhost/mssql2008R2.php
Connection to the database server OK
織田 信長