Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@f_uto

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

0
Help us understand the problem. What is going on with this article?
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
f_uto
株式会社クオリアシステムズのCTO&COOをしております。 新体制になりまして、エンジニア毎月1名程度募集してます。SESのような責任のない契約形態は基本NGです。お仕事は責任持って業務委託、請負で行いますし、行っていただきたい。 ※SES業界に疲れたエンジニアの方はぜひ、声かけてください。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?