php無法連接mssql的解決辦法:1、修改身份驗(yàn)證模式;2、修改并確定賬號密碼;3、開啟賬號訪問數(shù)據(jù)庫的權(quán)限。
本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
php無法鏈接mssql怎么辦?
php通常跟mysql數(shù)據(jù)庫一起使用,但是在開發(fā)一些企業(yè)應(yīng)用時(shí),由于企業(yè)原來的應(yīng)用使用MSSQL,必須要讓php連接SQL Server,
這也是一個(gè)大坑,下面講講使用php連接SQL Server失敗的3種常見原因…
在進(jìn)行php連接mssql前,你需要先把sqlsrv這個(gè)擴(kuò)展裝好,這也是一大堆坑。
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)); }
一、 身份驗(yàn)證模式不對
SQL Server有兩種身份驗(yàn)證模式,
1-1) windows身份驗(yàn)證模式,
即使用windows系統(tǒng)中的賬號或域賬號。
1-2) SQL Server 驗(yàn)證模式 有的也叫 SQL Server和Windows身份驗(yàn)證模式
使用SQL Server數(shù)據(jù)庫創(chuàng)建的賬號,
建議使用第2種SQL Server驗(yàn)證模式。
二、 賬號密碼不對
在php連接msql數(shù)據(jù)庫時(shí),涉及到windows系統(tǒng)賬號,域賬號和SQL Server數(shù)據(jù)庫賬號,
這么多賬號,對第一次連接的朋友來說,不知道選擇哪一種。
我們自己使用php開發(fā)mssql數(shù)據(jù)庫時(shí),使用 1-2 中的SQL Server身份認(rèn)證模式,是使用SQL Server數(shù)據(jù)庫賬號連接成功的,域賬號連接失敗。
windows系統(tǒng)賬號 和 SQL Server數(shù)據(jù)庫賬號 的關(guān)系,就像linux中,linux系統(tǒng)賬號 和 mysql數(shù)據(jù)庫賬號 的關(guān)系,你不能用 linux 中的 www 用戶,登錄連接mysql數(shù)據(jù)庫。
三、 未授權(quán)訪問數(shù)據(jù)庫
雖然你的賬號密碼是對的,但是php連接mssql還是失敗,原因是你的賬號沒有訪問數(shù)據(jù)庫的權(quán)限,這時(shí)需要在SSMS(sql server management studio)中,對用戶進(jìn)行授權(quán),或者把用戶添加到對應(yīng)的安全組里。
還有一種可能出錯(cuò)原因
上面3個(gè)原因是開發(fā)中經(jīng)常遇到過的,如果你的php跟SQL Server安裝在不同一臺(tái)主機(jī)上,還有一種可能,就是SQL Server未允許遠(yuǎn)程連接和訪問。
推薦學(xué)習(xí):《PHP視頻教程》