windows系統(tǒng)IIS下php.X連接并啟用sqlserver擴展(php_sqlsrv)

[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!

1、測試服務(wù)器信息,測試代碼如下:

打開用phpinfo();查看php版本信息。如下

<?php
echo phpinfo();
?>

也可以用站內(nèi)的雅黑探針來探測一下?支持PHP7.X探針-雅黑7.XPHP探針-PHP7雅黑探針(含下載)用雅黑探針也可以彈出使用的版本;

第二步下載:sqlserver擴展

這里我使用的php7.2版本,sqlserver擴展的下載鏈接:https://github.com/Microsoft/msphpsql/releases

官方sqlserver擴展下載鏈接:https://www.microsoft.com/en-us/download/details.aspx?id=20098

5.x版本的sqlserver擴展下載鏈接:鏈接:https://pan.baidu.com/s/1bkkArys7xBaJ9GUc9aDf9g? 提取碼:b6yo

PS:注意下載sqlserver擴展是32位和64位不是根據(jù)電腦的系統(tǒng)的位數(shù)判斷的,而是根據(jù)php的位數(shù)判斷的。如上圖的第一個紅框。

第三步:安裝并配置sqlserver擴展

? ? ?找到phpinfo()中使用的php版本。如D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext,然后把我們下載的sqlserver的擴展復(fù)制在這里。如圖所示:

找到php.ini。如圖所示

復(fù)制擴展需要的文件到PHP擴展目錄。(例如我這里使用的是:extension=php_pdo_sqlsrv_72_nts.dll 和? extension=php_sqlsrv_72_nts.dll

修改php.ini添加以下兩行來啟用擴展:

extension=php_pdo_sqlsrv_72_nts.dll
extension=php_sqlsrv_72_nts.dll

第四步:下載 ODBC Driver;

PS:注意這里的x86與x64是根據(jù)電腦系統(tǒng)判斷的,不是根據(jù)php版本

Microsoft? ODBC Driver 11 for SQL Server? - Windows (支持Sql Server? 2005) ?https://www.microsoft.com/zh-CN/download/details.aspx?id=36434

Microsoft? ODBC Driver 13 for SQL Server? - Windows + Linux (支持最新的SQL Server? 2016) ?https://www.microsoft.com/zh-CN/download/details.aspx?id=50420

這里安裝,只需要下一步下一步即可完成安裝...

建議 安裝ODBC Driver,根據(jù)自己的需要選擇上面的地址下載并安裝。

如果上面的ODBC版本太高,那么用這個低一點的 ODBC Driver 本站有下載 https://pan.baidu.com/s/1bkkArys7xBaJ9GUc9aDf9g? 提取碼:b6yo

現(xiàn)在可以使用phpinfo() 來查看是否成功加載了?pdo_sqlsrv 模塊。

PS:延伸閱讀:

PHP5.4連接sqlserver

1.下載微軟的php連接驅(qū)動:SQLSRV30.EXE(5.4對應(yīng),后面的native client要用2012)/SQLSRV20.EXE(5.3對應(yīng),native client要用2008)/SQLSERV31.EXE對應(yīng)5.5

2.解壓SQLSERV30.EXE,拷貝對應(yīng)extension到php的ext目錄

3.配置php.ini

extension=php_sqlsrv_54_ts.dll(54為5.4版本,ts為線程安全,nts為非線程安全,帶pdo的是用pdo方式連接,sqlsrvxx.exe里都有)

mssql.secure_connection?=?Off改為on?很多教程沒寫這個

4.重啟IIS/Apache

5.在sqlserver服務(wù)器配置TCP/IP連接

6.在php服務(wù)器下載安裝sqlserver native client(win8下裝上這玩意http://www.microsoft.com/en-us/download/details.aspx?id=20098)

測試代碼

連接sqlserver

?前提是sqlserver可以外網(wǎng)連接。

$conn = sqlsrv_connect('localhost', array('Database' => 'test', 'UID' => 'sa' , 'PWD' => '123456'));

if( $conn == false){
  var_dump(sqlsrv_errors());exit;
}

$sql = "SELECT * FROM users";

$result = @sqlsrv_query($conn, $sql);
while ( $re = @sqlsrv_fetch_array($result)) {?
  var_dump($re);
}

host一般是ip+端口,如ip,1433 。ip與端口之間用,隔開

$database = "數(shù)據(jù)庫名稱";
$uid = "sa";
$pwd = "123";
$Server = "192.168.0.152";
$conInfo=array('Database'=>$database,'UID'=>$uid,'PWD'=>$pwd);
$link=sqlsrv_connect($Server,$conInfo);

if( $link ){
// echo "Connection established.\n";
$query = 'SELECT * FROM T_Sys_UserInfo';

/* Set parameter values. */
$params = array(75123, 5, 741, 1, 818.70, 0.00);

/* Prepare and execute the query. */
$stmt = sqlsrv_query( $link, $query, $params);
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
echo $row['UseName'].", ".$row['RealName']."\n";
}

}
else{
//echo "Connection could not be established. ";
print_r( sqlsrv_errors(), true);
if( ($errors = sqlsrv_errors() ) != null) {
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
echo "code: ".$error[ 'code']."<br />";
echo "message: ".$error[ 'message']."<br />";
}
}
die("");
}

PDO方式連接:

<?php
header("Content-Type: text/html;charset=utf-8");

class mssql{
private $host;
private $username;
private $password;
private $database;
private $handle;
private function __construct (Array $config){
$this -> host = $config['host'];
$this -> username = $config['username'];
$this -> password = $config['password'];
$this -> database = $config['database'];
$this -> init();
}
private function init() {
$dsn = 'sqlsrv:server = '.$this -> host.';database = '.$this->database;
$this -> handle = new PDO($dsn,$this -> username, $this -> password);
}
public static function GetInstance(array $config = null) {
if (null == $config) {
return NULL;
}
static $db = null;
if (null == $db) {
$c = __CLASS__;
$db = new $c($config);
};
return $db -> handle;
}
}

$config = array(
'host' => '192.168.0.152,1433',
'database' => '數(shù)據(jù)庫名稱',
'username' => 'sa',
'password' => '123'
);
$mssql = mssql::GetInstance($config);
$result = $mssql->query('SELECT * FROM T_Sys_UserInfo');
foreach($result as $row){
echo $row[2];
}
?>

 

問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責聲明,若由于商用引起版權(quán)糾紛,一切責任均由使用者承擔。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責聲明》全部內(nèi)容的認可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請諒解! 侵權(quán)刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習,歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » windows系統(tǒng)IIS下php.X連接并啟用sqlserver擴展(php_sqlsrv)

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護;網(wǎng)站開發(fā)修改及維護; 各財務(wù)軟件安裝調(diào)試及注冊服務(wù)(金蝶,用友,管家婆,速達,星宇等);同時也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情