使用php來訪問操作sql server


使用php來訪問操作sql server

在此分成三步走:

第一部:查看配置,下載文件

首先查看自己的php和sql server版本

Php文件輸入echo PHP_VERSION  運行腳本就可以看到

如果是php7,則搭配sql server2016 ,即若你的php版本是7那么sql server必須是2016

其余的根據以下信息來搭配

 

SQLSRV 的版本與php的關系

Version 4.0 supports PHP 7.0+

Version 3.2 supports PHP 5.6, 5.5, and 5.4

Version 3.1 supports PHP 5.5 and 5.4

Version 3.0 supports PHP 5.4.

 

SQLSRV 與ODBC driver for server的關系

Version 4.0     ODBC Driver 11 或者 ODBC Driver 13.

Versions 3.2/ 3.1     ODBC Driver 11.

Version 3.0       Microsoft SQL Server 2012 Native Client x86. (若為php5.4建議使用version3.1或3.2)

 

ODBC driver for server 與sql server版本的關系

ODBC driver 11  支持Microsoft SQL Server 2005, 2008, 2008 R2, SQL Server 2012, SQL Server 2014 and Windows Azure SQL Database

ODBC driver 13 支持 Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016 (Preview), Analytics Platform System, Azure SQL Database and Azure SQL Data Warehouse.

 

比如我的是sql server 2008 R2 和php5.5

選擇可以選擇的SQLSRV為3.1或3.2版本,對應的ODBC driver時ODBC driver11,ODBC drive11 支持的sql server中有sql server 2008 R2,所以最后選擇的是ODBC driver 11 和SQLSRV3.1或3.2

 

今天徒弟的機子上的環境是sql server 2016 和php7

所以選擇的是ODBC driver 13 和SQLSRV4.0

 

選好后下載相應的文件,下載地址如下:

ODBC Driver 11 for sql server  下載地址https://www.microsoft.com/en-us/download/details.aspx?id=36434

ODBC Driver 13 for sql server下載地址https://www.microsoft.com/en-us/download/details.aspx?id=50420

SQLSRV 下載地址https://www.microsoft.com/en-us/download/details.aspx?id=20098

 

第二步:安裝PHP擴展

新建一個php文件輸入<?php  phpinfo() ;   ?>在瀏覽器里運行php文件,找到PHP Extension Build選項

 

 

 

可以看到它的值里有TS或者NTS,記錄下來

查看php擴展路徑打開php安裝目錄下的php.ini 文件搜索extension_dir

查看它的值如下

 

 

雙擊下載下來的SQLSRV文件,

隨便解壓到一個路徑下,解壓后打開目錄,選擇里面的

php_pdo_sqlsrv_55_ts.dll和

php_sqlsrv_55_ts.dll兩個文件,其中的55是php版本號5.5   ,ts是PHP Extension Build選項里得出的,我本地環境是TS,如果你的是NTS 則選擇的是NTS文件

 

把選中的兩個文件復制到php擴展路徑下,如C://xampp/php/ext

在php.ini文件里加上如下兩行

 

其實就是你剛才復制的兩個文件,其中的數字55 和ts可能有所不同

保存配置文件,重啟服務器apache,運行剛才的腳本看是否有PDO_SQLSRV

如下:

 

 

若有那么恭喜你成功了第二步

 

第三步:安裝驅動器,設置sql server

雙擊安裝下載下來的ODBC driver文件,安裝完成后設置sql server

打開sql server management studio 使用sql server的用戶名和密碼登錄

 

 

若不能登錄則使用windows系統登錄,對着服務器名右鍵->屬性->安全性,選中”sql server和windows身份驗證模式”

 

 

保存,

點擊安全性->登錄名 對着用戶名(sa)右鍵->屬性->常規  更改密碼,狀態里選擇授予和登錄

 

 

 

保存編輯

重啟sql server服務看是否可以用賬號密碼登錄,只到可以登錄未止。

 

打開SQL SERVE R配置管理工具:

點擊sql server網絡配置協議在右側啟動TCP/IP,對TCP/IP右鍵->啟動,右鍵->屬性->IP地址,在最下方的IPALL 里的TCP發端口改為1433

 

 

 

保存,同時對客戶端協議做同樣的操作,重啟sql server服務

到此第三步完成

 

測試:新建PHP文件,輸入如下代碼:

<?php
class sql{
private $serverName = "LXBDELL\SQLEXPRESS"; //sql server鏈接實例名
private $connectionInfo = array("UID"=>"sa","PWD"=>"lxb106170","Database"=>"test"); //配置用戶名,密碼,數據庫
public $sql = "SELECT Name FROM Master..SysDatabases ORDER BY Name"; //默認的sql語句
public $result;
public $conn = '';

public function __construct( $name ='' , $user ='' , $pwd ='' ,$db = '' ){
if( $name ){
$this->serverName = $name;
}
if( $user ){
$this->connection['UID'] = $user;
}
if( $pwd ){
$this->connection['PWD'] = $pwd;
}
if( $db ){
$this->connection['Database'] = $db;
}

//connect to sqlserver
if( !$this->conn ){
$this->conn = sqlsrv_connect( $this->serverName, $this->connectionInfo)
or die( sqlsrv_errors() );
}
}

public function doQuery( $sql ){
if(!$this->conn){
return " sorry ,can't to link server" ;
}
if( $sql ){
$this->sql = $sql ;
}
$this->result = sqlsrv_query($this->conn,$this->sql) ;
return $this->result;
}

public function close(){
if($this->conn){
sqlsrv_close ( $this->conn ) ;
}
}
}
//phpinfo();

$server = new sql();
$sql = "select * from [user] "; //sql語句寫在這
$result = $server->doQuery( $sql ); //查詢返回的句柄
$output = '';
if ( ! is_string( $result )){
while ( $re = sqlsrv_fetch_array ( $result )){ //sqlsrv_fetch_array 通過查詢結果句柄獲取查詢結果
//$output[] = $re; //打印查詢結果
var_dump( $re ) ;
}
}else{
echo $result;
}

?>

 

 

 

替換其中的serverName ,UID ,PWD ,Database

ServerName是sql server的實例名,UID是登錄名,PWD是密碼.運行腳本可以知道是否鏈接成功

 

已經從sql server數據庫里讀出數據了

                                                                                                                             

二〇一六年十二月二十日星期二

梁小兵        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM