2012年6月13日水曜日

PDOドライバのインストール

PDO(PHP Data Objects)

PDO自体はあらかじめ入ってたんですが各ドライバがなかったんでインストール方法を忘れないようにメモ。

まず、Linux環境にpdo_mysql。
$ cd /usr/local/src
$ pecl download pdo_mysql
$ tar xzf PDO_MYSQL-1.0.2.tgz
$ cd PDO_MYSQL-1.0.2
$ phpize
$ ./configure --with-pdo-mysql=/usr/local/mysql
$ make
$ sudo make install

これでpdo_mysql.soが生成されるのでphp.iniにpdo_mysql.soを追記。
(pdo_mysql.default_socketも設定した方が良いみたい)

次に、pdo_dblib(MSSQLにつなぐ用)。
$ cd /usr/local/src
$ pecl download pdo_dblib
$ tar xzf PDO_DBLIB-1.0.tar
$ cd PDO_DBLIB-1.0
$ phpize
$ ./configure --with-pdo-dblib=/usr/local/freetds
$ make
$ sudo make install

ただこれだとエラーがでます。
Cannot find FreeTDS in known installation directories

--with-pdo-dblibで指定したディレクトリにtds.hとlibtds.aがないとだめみたい。
ということでこんなかんじで作成
$ sudo touch /usr/local/freetds/include/tds.h
$ sudo touch /usr/local/freetds/lib/libtds.a

これで再度、makeするとOK。
php.iniにpdo_dblib.soを追記します。

次にWindowsですが。。。コメントを外すだけです。
ただし、MSSQLですがPHP5.3からphp_mssql.dll/php_pdo_mssql.dllがなくなってますんでsqlsrvを使う必要があります。
インストールとかは前に書いてたんで。。。
PHP5.3以降のMicrosoft SQL Server接続について


あとは使い方ですが以下
// MySQL(Linux・Windows)
$pdo = new PDO("mysql:host=<hostname>;dbname=<database>", "username", "password");

// MSSQL(Linux)
$pdo = new PDO("dblib:host=<hostname>;dbname=<database>", "username", "password");

// MSSQL(windows)
$pdo = new PDO("sqlsrv:server=<hostname>:database=<database>", "username", "password");

これで接続はできます。
MySQLはいいんですがMSSQLはLinuxとWindowsで中身が変わるのがちょっと気になるところ。



0 件のコメント:

コメントを投稿