下載 Microsoft Drivers for PHP for SQL Server 並配置
-
在window sandbox中執行安裝文件(實際上只需要dll文件,所以不在主機安裝),並根據php版本和是否Thread Safety取用需要的dll文件,我取用的是【php_pdo_sqlsrv_72_ts_x64.dll】和【php_sqlsrv_72_ts_x64.dll】
-
兩個dll複製到D:\xampp\php\ext並配置php.ini,phpinfo查看,會出現pdo_sqlsrv的信息
;KSalomo Sqlserver extension extension=php_pdo_sqlsrv_72_ts_x64.dll extension=php_sqlsrv_72_ts_x64.dll
測試範例及注意事項
-
直接使用sqlsrv測試
$serverName = "localhost"; //數據庫服務器地址 $uid = "sa"; //數據庫用戶名 $pwd = "123"; //數據庫密碼 $connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"yourDatabaseName"); $conn = sqlsrv_connect($serverName, $connectionInfo); $data= sqlsrv_query($conn,"select * from yourTable"); if($data==true){ while($row=sqlsrv_fetch_array($data,SQLSRV_FETCH_ASSOC)) { echo empty($row['DisplayName'])?'2':iconv("GBK", "UTF-8", $row['DisplayName'])."<br/>"; } }
-
使用PDO測試
$db = new PDO("sqlsrv:Server=localhost;Database=yourDatabaseName", "sa", "123"); $sql = "SELECT * FROM yourTable"; $res = $db->query($sql); while ($row = $res->fetch()){ print_r($row); }
-
使用ThinkPHP5測試,一定注意database.php的配置方式,稍有出入就查詢不成功
-
database.php,僅列出部分必須配置項
<?php return [ // 數據庫類型 'type' => 'sqlsrv', // 服務器地址,不可使用127.0.0.1,否則報錯:SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]命名管道提供程序: 無法打開與 SQL Server 的連接 [5]. 'hostname' => 'localhost', // 數據庫名 'database' => 'yourDatabaseName', // 用戶名 'username' => 'sa', // 密碼 'password' => '123', // 端口,保留空,不可填1433,否則報錯:SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序: 由於目標計算機積極拒絕,無法連接。 'hostport' => '', // 連接dsn 'dsn' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認採用utf8 'charset' => 'GBK' ];
-
測試代碼
Db::query('SELECT * FROM yourTable');
-