laravel 5 freetdsを使ってsql serverを接続する方法
2753 ワード
関連バージョン
システム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ドライバ
config/database.phpを開いてconnectionsに配置を追加して、sqlsrvを駆動します。
mysqlを使ったらsqlserverの一部の情報を使いたいですが、個人プロジェクトの原因はsqlserverのシステムでAPIを書いてMysqlシステムの呼び出しをしますが、今回はこっそり怠けて、二つだけ一緒に使いました。
Modelに
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考となる学習価値を持っています。質問があれば、メッセージを書いて交流してください。ありがとうございます。
システム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 5config/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に接続を書かなくてもいいです。締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考となる学習価値を持っています。質問があれば、メッセージを書いて交流してください。ありがとうございます。