php無法連接mssql的解決方法:1、修改驗證模式;2、修改並確定帳號密碼;3、開啟帳號存取資料庫的權限。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php無法連結mssql怎麼辦?
php通常跟mysql資料庫一起使用,但在開發一些企業應用程式時,由於企業原來的應用程式使用MSSQL,必須讓php連接SQL Server,
這也是一個大坑,以下講講使用php連線SQL Server失敗的3個常見原因…
在進行php連線mssql前,你需要先把sqlsrv這個擴充裝好,這也是一大堆坑。
php連線SQL Server程式碼如下
//$serverName = "localhost"; $serverName = "127.0.0.1"; $connectionInfo = array( "Database"=>"qinziheng", "UID"=>"sa", "PWD"=>"123456"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); }
一、驗證模式不對
SQL Server有兩種驗證模式,
1-1) windows驗證模式,
即使用windows系統中的帳號或網域帳號。
1-2) SQL Server 驗證模式有的也叫SQL Server與Windows驗證模式
#使用SQL Server資料庫建立的帳號,
建議使用第2種SQL Server驗證模式。
二、 帳號密碼不對
在php連接msql資料庫時,涉及到windows系統帳號,網域帳號和SQL Server資料庫帳號,
這麼多帳號,對第一次連結的朋友來說,不知道該選擇哪一種。
我們自己使用php開發mssql資料庫時,使用 1-2 中的SQL Server認證模式,是使用SQL Server資料庫帳號連線成功的,網域帳號連線失敗。
windows系統帳號 和 SQL Server資料庫帳號 的關係,就像linux中,linux系統帳號 和 mysql資料庫帳號 的關係,你不能用 linux 中的 www 用戶,登入連接mysql資料庫。
三、未授權存取資料庫
雖然你的帳號密碼是對的,但是php連線mssql還是失敗,原因是你的帳號沒有存取資料庫的權限,這時需要在SSMS (sql server management studio)中,對使用者進行授權,或把使用者加入對應的安全群組。
還有一個可能出錯原因
上面3個原因是開發中常遇到的,如果你的php跟SQL Server安裝在不同一台主機上,還有一種可能,就是SQL Server未允許遠端連線和存取。
推薦學習:《PHP影片教學》
以上是php無法連結mssql怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!