ホームページ  >  記事  >  PHPフレームワーク  >  laravel5はfreetdsを介してsqlserverにどのように接続しますか(コード)

laravel5はfreetdsを介してsqlserverにどのように接続しますか(コード)

不言
不言オリジナル
2018-07-31 16:22:443130ブラウズ

この記事では、laravel5 による freetds 経由での sqlserver への接続について紹介します。これは、困っている友人に役立つことを願っています。

関連バージョン

システム ubuntu 16.04、使用される PHP バージョンは 7.0.30、sqlserver 2012、freetds は 0.92 Laravel5.5 と 5.4 がテスト済みです

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" 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

Laravel5を構成する

config/database.phpコード> の 接続 に構成を追加します。ドライバーは sqlsrv<code>config/database.phpconnections中添加配置,驱动使用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';rrreee

複数のデータベースを使用します

mysql を使用していて、sqlserver の情報を使用したい場合は、個人的なプロジェクトの理由によるものですが、一般的なアプローチは sqlserver システム用です。 Mysql システム コールの API を作成するためでしたが、今回は怠惰だったので両方を一緒に使用しました protected $connection = 'mssql'; をモデルに追加し、protected $table = ' を使用しますEMPLOYEE'; code> データテーブルを指定するので、毎回コントローラーに接続を記述する必要はありません

関連する推奨事項:

データ統計描画での laravel フレームワークの実装🎜🎜🎜🎜 LaravelフレームワークでのEchoの利用処理🎜🎜

以上がlaravel5はfreetdsを介してsqlserverにどのように接続しますか(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。