laravel 5 freetdsを使ってsql serverを接続する方法


関連バージョン
システムuuntu 16.04、使用するPHPバージョンは7.0.30、sqlserver 2012、freetdsは0.92 Laravel 5.5と5.4とテストしました。
フリーTDSとは 
簡単に言えば、FreeTDSは、LinuxシステムでマイクロソフトのSQLデータベースにアクセスすることができます。FreeTDSは、TDS(テーブル列データストリーム)プロトコルの再実現のためのオープンソースライブラリである。これはSyboaseのdb-libまたはct-libライブラリで使用できます。ODBCのライブラリも含まれています。多くのオープンソースのアプリケーションを許可します。例えば、PerlとPHP(またはあなた自身のcまたはC+プログラム)は、SybrateまたはMicrosoft SQLサーバに接続します。FreeTDSはソースコードとして発表されています。ほとんどのオペレーティングシステムでコンパイルできます。UnixとクラスUnixシステム(InterixやQNXなどの有名な分岐を含む)とWin 32、VMS、OSXを意味する。
ここではlaravel 5がfreetdsを使ってsql serverに接続されている内容を詳しく紹介します。以下の話は多くないです。詳しく紹介してみましょう。
ステップは以下の通りです
インストールphpドライバ

sudo apt-get install php7.0-odbc 
sudo apt install php7.0-sybase
freetdsをインストールする

sudo apt-get install freetds-bin freetds-common tdsodbc odbcinst unixodbc unixodbc-dev 
sudo mv /etc/odbcinst.ini /etc/odbcinst.ini.bak 
sudo cp /usr/share/tdsodbc/odbcinst.ini /etc/ 
freetdsの設定

 sudo vim /etc/freetds/freetds.conf
設定を変更

[global]
 tds version = 8.0 # TDS version, ref <a href="http://www.freetds.org/userguide/choosingtdsprotocol.htm" rel="external nofollow" target="_blank">this</a>.
 client charset = UTF-8
 text size = 20971520
[Server2012] #     ,      
 host = {yourdomain}.database.windows.net // ip     
 port = 1433
 tds version = 8.0 #8.0 2012      
テストSQLSERVER

 TDSVER=8.0 tsql -H my_server_host -p 1433 -U my_user -P my_password -D my_database
プロファイルLaravel 5
config/database.phpを開いてconnectionsに配置を追加して、sqlsrvを駆動します。

 'mssql' => [
  'driver' => 'sqlsrv',
  'host' => 'Server2012', //     freetds.conf     
  'port' => '1433',
  'database' => env('DB_DATABASE', '   '),
  'username' => env('DB_USERNAME', '  '),
  'password' => env('DB_PASSWORD', '  '),
  'charset' => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix' => '',
  'strict' => false,
  'engine' => null,
 ],
マルチデータベース
mysqlを使ったらsqlserverの一部の情報を使いたいですが、個人プロジェクトの原因はsqlserverのシステムでAPIを書いてMysqlシステムの呼び出しをしますが、今回はこっそり怠けて、二つだけ一緒に使いました。
Modelにprotected $connection = 'mssql';を加入し、protected $table = 'EMPLOYEE'; を使用してデータテーブルを指定すると、Controllerに接続を書かなくてもいいです。
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考となる学習価値を持っています。質問があれば、メッセージを書いて交流してください。ありがとうございます。