MacからSQLServerへ接続
Nov 3, 2016 · mac · serverphpdb
MacのPHP5.6からSQLServer(MSSQL)へ接続する方法
CentOSの場合はこちら
子ネタ
SQLServer
へPHPから接続するには以下の方法がある
- PDO_SQLSR
- Windows版のPHPでしか使えない
- PDO_DBLIB
FreeTDS
ライブラリを利用する- Windows版はPHP5.3以降使えない
- PDO_ODBC
- Microsoftのドライバが必要(Win or Linuxのみ) => Macは使えない
という訳で、Macからの場合はPDO_DBLIB
+FreeTDS
一択、
Linuxの場合はPDO_ODBC
+公式ドライバ(おすすめ?) or PDO_DBLIB
+FreeTDS
となる
手順
FreeTDSのインストール
Homebrew
でFreeTDS
をインストールbrew install freetds
FreeTDS
の接続確認tsql -H (SQLServerのアドレス) -p (ポート) -U (ユーザ名) -P (パスワード)
として
locale is "ja_JP.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1>
のようになれば
exit
で終了
1>
の部分の数字が変わっていく場合は接続がうまくいっていない
試した開発環境ではかなりの頻度でタイムアウトのエラーが出ていたので何度か試してみること
PDO_DBLIBのインストール
Homebrew
でPDO_DBLIB
をインストールbrew install homebrew/php/php56-pdo-dblib
設定の確認
php --ri pdo_dblib
を実行して、
PDO Driver for FreeTDS/Sybase DB-lib => enabled Flavour => freetds
と出ていればOK
PHPからの接続
PDOのDSNの指定は以下の通り
$user = 'test'; // ユーザ名
$pass = '1234'; // パスワード
$host = '192.168.0.10'; // ホスト
$port = '1433'; // ポート番号
$db = 'sample'; // データベース名
$pdo = new PDO('dblib:host=' . $host . ':' . $port . ';dbname=' $db,
$user, $pass);
PHPStormの設定
PHPStorm
から接続したい場合の設定は以下の感じ
参考リンク
開発環境
- Mac 10.11
- PHP 5.6.27 + PDO_DBLIB
- FreeTDS 1.00.15 (TDS 7.3)
- DBサーバ SQLServer Express 2016(Win)