0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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とか使えたのでこのまま行ってみようと思ってますが、
もし使ってみてここが変だよ!ってところはコメントください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?