MacからSQLServerへ接続

MacのPHP5.6からSQLServer(MSSQL)へ接続する方法

CentOSの場合はこちら

子ネタ

SQLServerへPHPから接続するには以下の方法がある

という訳で、Macからの場合はPDO_DBLIB+FreeTDS一択、 Linuxの場合はPDO_ODBC+公式ドライバ(おすすめ?) or PDO_DBLIB+FreeTDSとなる

手順

FreeTDSのインストール

  1. HomebrewFreeTDSをインストール

    brew install freetds
    
  2. 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のインストール

  1. HomebrewPDO_DBLIBをインストール

    brew install homebrew/php/php56-pdo-dblib
    
  2. 設定の確認

    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から接続したい場合の設定は以下の感じ

参考リンク

開発環境