本文直接使用自帶的ODBC驅動
在使用前請確定PHP開啟了php_pdo_odbc擴展
<?php /* * @Author: HUANGYUAN * @Date: 2017-03-01 16:32:22 * @Last Modified by: huangyuan413026@163.com * @Last Modified time: 2017-03-01 17:53:53 * @Description: 使用odbc連接到sqlserver,PHP必須開啟php_pdo_odbc擴展 */ namespace app\index\controller; use PDO;//導入PDO class login { public function index(){ //以下三個mssqldriver,使用任意一個都可以 $mssqldriver = '{SQL Server}'; $mssqldriver = '{SQL Server Native Client 11.0}'; $mssqldriver = '{ODBC Driver 11 for SQL Server}'; $hostname='123.123.123.123,1414'; $dbname='dbname'; $username='user'; $password='pwd'; //使用ODBC方式連接 $dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password); //沒有安裝sqlsrv驅動時無法使用,error:could not find driver // $dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password); $sql = "SELECT * FROM Users"; foreach ($dbDB->query($sql) as $row) { var_dump($row); } exit; } }
//$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password
); 的錯誤信息
原因:可能是沒有安裝驅動sqlsrv,DOWNLOAD
Microsoft SQL Server Functions (PDO_SQLSRV)

使用Thinkphp5的DB來處理數據庫
1.數據庫配置 database.php
<?php return [ // 數據庫類型 'type' => 'Sqlsrv', //必須輸入
// 用戶名 'username' => 'username', // 密碼 'password' => 'pwd', // 連接dsn,驅動、服務器地址和端口、數據庫名稱 'dsn' => 'odbc:Driver={SQL Server};Server=123.123.123.123,1414;Database=dbname', ];
2.控制器文件
<?php /* * @Author:HUANGYUAN * @Date: 2017-03-01 16:32:22 * @Last Modified by: huangyuan413026@163.com * @Last Modified time: 2017-03-02 10:19:19 * @Description: 使用odbc連接到sqlserver,PHP必須開啟php_pdo_odbc擴展 */ namespace app\index\controller; use think\Db; //必須先導入db類,否則不能使用 class login { public function index(){ $user = Db::table('Users')->where('userid',1)->select(); print_r($user); } }
2017-06-27 UPDATE
在PHP中默認中已經配置了pdo的mysql、sqlite、sqlsrv等數據庫驅動的,一般情況下我們可以直接使用即可
所以推薦使用PDO方式而不是ODBC(
ODBC需要單獨安裝驅動)
$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);
參考: