我好像也沒真正去連 SQL Server, 那麼就來手動測試一下連線至 MS SQL Server 看看吧!
環境:
- Windows 10
- SQL Server 2014
- Apache 2.4.18 (Win32)
- Laravel 5.2.39
- PHP 5.6.9 / Microsoft PHP Driver for SQL Server v3.2
- PHP 7.0.6 / Microsoft Drivers for PHP for SQL Server v4.0.4
必備元件:
下載 Microsoft PHP Driver for SQL Server
現在官網上的下載版本只支援到 PHP v5.6, 所以只能下載 3.2 版本, 測試的 PHP 版本為 5.6.x
另外若是使用 PHP 7 的朋友, 可以到 GitHub 下載 Azure/msphpsql v4.x 的版本
https://github.com/Azure/msphpsql/tree/v4.0.4
PHP - php.ini 設定
檢查版本資訊以上圖為例: 我需要符合 PHP 7.0.6 NTS 的版本
將檔案放至 php 的 ext/ 資料夾, 修改 php.ini 加上:
`extension=php_pdo_sqlsrv_7_nts.dll`
重新啟用 server 即可
查看 phpinfo() 即可得到支援的版本資訊
Laravel database 設定
修改 config/database.php加上 sqlsrv 的設定區塊
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'prefix' => '',
],
修改 .env 的 DB 設定
DB_CONNECTION=sqlsrv
其他參數依需求變更
測試連線讀取資料
Route::get('/', function () {
var_dump( DB::table('Products')->first() );
});
這裡是讀取資料表 Products 取得第一筆資料, 如果設定正確, 你將會看到印出的物件資料
若是 Driver 沒有設定正確會得到錯誤: could not find driver
若是遇到的 PDOException : SQLSTATE[08001]
這是跟網友遇到的問題是一樣的:
SQLSTATE[08001]: [Microsoft][ODBC Driver 11 for SQL Server]TCP Provider: 無法連線,因為目標電腦拒絕連線。
沒有留言:
張貼留言