phalcon で mssql(Microsoft SQL Server)を使ってみる

PhalconでMicrosoft SQL Serverを使ってみる

もちろんリモートのSQL Serverを使います。

Windowsの場合もMacの場合もクライアントにODBCドライバが必要になります。

ODBC Driver インストール

2020.11.25 macでpeclコンパイルインストールがうまくいかない模様。以下からバイナリを取得するのがベストNTSのやつを

MacにMSSQLのODBCドライバをインストール

Macにインストールは、Linuxとかと似てるんですが、以下にMicrosoftさんが丁寧に解説してくれてますので、コマンドもそのまま実行すれば大丈夫です。
ただ、一気にコマンドを実行するとうまく行かないケースがあるので、
1行ずつコピーして実行してください。

Windows にODBCドライバをインストール

以下サイトからダウンロード、インストールします。
https://www.microsoft.com/ja-JP/download/details.aspx?id=36434

Microsoft SQL Server 用 PHP ドライバーのインストール

Macの場合

ここにある、手順2と3だけでよい。基本的には。すでにいろいろ開発してる人は、3だけでも良いかもです。

手順 2. 必須コンポーネントのインストール
Linux と macOS のインストールに関するページの手順に従って、macOS 用 ODBC ドライバーをインストールします。
さらに、GNU make ツールをインストールする必要がある場合があります。

brew install autoconf automake libtool

手順 3. Microsoft SQL Server 用 PHP ドライバーのインストール

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

pecl (PHPのライブラリを扱うやつ)自体が入ってない可能性もあるので、command not found となる場合はググってくださいw

pecl install sqlsrv

pecl install pdo_sqlsrv
の結果画面に、
どこにインストールされたかパスが出力されるので、しっかりと覚えておいてください。
そこのパスを
php.ini
に以下のように記述することになるかとおもいます。以下は例です。

extension=/usr/local/lib/php/pecl/20180731/sqlsrv.so
extension=/usr/local/lib/php/pecl/20180731/pdo_sqlsrv.so

※順番もpdoのほうが後がよいかとおもう。

Mac(Linux系)は、sqlsrv.soとpdo_sqlsrv.soです。

Windows のPHP ドライバもMacのときと同じ

URLは同じです。現時点では
https://www.microsoft.com/en-us/download/details.aspx?id=57916
ここにあるのが最新っぽいです。
sqlsrv.dll
pdo_sqlsrc.dll

windows と mac/Linuxの違いはso or dllの違いなのでmacのときみたいに、
インストールされた場所をphp.iniに書けば良い。

ここまでは、PHPでMSSQLを使う方法でした。ここからがPhalcon

Phalconでmssqlを扱う!

Phalcon用Adapter/dialectを用意する

どんなに探しても、Phalcon2.xまでだったり、Phalcon3.0.xといいつつも、ちゃんと動かないものだったりしたので、私が作りまいsた!

composer で扱えるようにもしたので、

composer installできるようにしたよ(packagistに登録しといた)

composer require qualiasystems/phalcon-sqlsrv

とりあえず、これで一通りfindfirstとかfindとか使えたのでこのまま行ってみようと思ってますが、
もし使ってみてここが変だよ!ってところはコメントください。