導航:首頁 > 編程語言 > phpsqlsrvconnect

phpsqlsrvconnect

發布時間:2023-06-03 12:19:23

Ⅰ 如何用php連接SQL Server

1:PHP5.2.x本身有個php_mssql.dll的擴展用來連接Sql server,但是這個dll只是用來連接低版本 Sql server的(2000以下版本),在Sql server 2005及以上版本無法使用mssql_connect連接到資料庫。
2:php5.3.x不再支持php_mssql.dll 拓展庫了,及時使用php5.2.x中的php_mssql.dll也無法使用。 微軟專門為PHP出了個SQL Server的擴展(Windows版本的),對於Windows下使用php開發SQL Server應用來說,這個擴展有利於利用SQL Server來開發php平台連接sql server資料庫管理系統。
一、php5.3以下的版本連接sql server
5.3以下的版本擴展裡面自帶一個php_mssql.dll;接資料庫的擴展,可以利用這個擴展鏈接資料庫,(只限於鏈接低版本資料庫)。
具體的步驟如下:
1:首先安裝sql server,超級不好安裝,我之前安裝的是2008版本的,Windows過期後就不能用了,然後重裝還裝不上,最後重裝系統才裝上
2:確定SQL裝的時候用的是混合認證模式,或SQL驗證模式,然後打開php的配置文件(php.ini),開啟mssql擴展 (extension=php_pdo_mssql.dll前面的分號去掉)並且需要把mssql.secure_connection = On 重啟後生效。
如果比較順利的話已經可以連接資料庫了,如果連不上就需要繼續低下的配置:
3: 檢查ntwdblib文件的版本(php/下面和Apache/下面)下載正確的版本的 ntwdblib.dll(2000.80.194.0)覆蓋現有的DLL文件,(把ntwdblib.dll,php_mssql.dll 復制到system32目錄中也可以)ntwdblib.dll 用於PHP連接MSSQL2005或2008的驅動文件。
4:測試連接:mssql_connect('localhost,1433', '用戶名', '密碼');
二、php5.3+連接sql server
其 實5.3以下的php版本已經很少用了,況且安全性和兼容性都不好,所以高版本的php還是比較常見的。實踐證明低版本的php連接資料庫成功率比較低 (2005以上的版本幾乎不能使用),推薦使用php5.3+ php使用微軟專門的擴展 SQLSRV 來連接sqlserver資料庫

1:先到微軟網站下載 SQL Server Driver for PHP 是一個自解壓的 EXE文件,解壓縮後你會得到這么幾個文件:

其中的52、53表示就是php的5.2.x和5.3.x 版本,選擇跟你php版本相匹配的;vc6或vc9的選擇要看你使用的是什麼web伺服器軟體,如果使用的是IIS那就選擇vc9的,如果是Apache 則選擇vc6的,ts和nts的選擇要看你安裝的php版本是線程安全版的還是非線程安全版,ts是線程安全,nts是非線程安全。
如果不知道可以在phpinfo里看Zend Extension Build這個屬性如下圖:

2:將擴展拷貝到拷到php/ext目錄下,在php.ini文件,添加一下代碼:
extension=在ext下的pdo擴展(用於pdo)
extension=在ext下的擴展
3:重啟伺服器,打開phpinfo();看到以下狀態就證明添加擴展成功,

4:連接測試:


<?php

$serverName = "(local)";

$connectionInfo = array("UID"=>"sa","PWD"=>"admin","Database"=>"db_online");

$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ){

echo "Connection established. ";

}else{

echo "Connection could not be established. ";

die( var_mp(sqlsrv_errors()));

}

sqlsrv_close( $conn);

?>

注意這里的連接不是用mssql_connect而是用sqlsrv_connect,在這個版本中,還有幾個函數:
這個擴展為php新增了一系列sqlsrv_開頭的函數,常用的如下:

sqlsrv_connect
sqlsrv_close
sqlsrv_commit
sqlsrv_errors
sqlsrv_fetch
sqlsrv_fetch_array
sqlsrv_fetch_metadata
sqlsrv_num_rows
sqlsrv_query
sqlsrv_rollback
sqlsrv_rows_affected
. . .
另外注意的是,如果使用這個擴展連接Sql server 2005以及以上版本的sql server(如sql server 2008),你還需要在機器上先安裝 SQL Server Native Client
不然會出現如下錯誤:

array
0 =>array
0 =>string'IMSSP'(length=5)
'SQLSTATE' =>string'IMSSP'(length=5)
1 =>int-49
'code' =>int-49
2 =>string'This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
'message' =>string'This extension requires the Microsoft SQL Server 2008 Native Client. Access the following URL to download the Microsoft SQL Server 2008 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
1 =>array
0 =>string'IM002'(length=5)
'SQLSTATE' =>string'IM002'(length=5)
1 =>int0
'code' =>int0
2 =>string'[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序'(length=71)
'message' =>string'[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序'(length=71)
. . . .

解決方法:需要安裝SQL Server 2008 Native Client ODBC Driver,下載安裝文件sqlncli.msi,安裝後就可以了。

以上就是php連接sql server的方法,希望對大家解決類似問題有所幫助。



Ⅱ PHP連接sql2008 R2 Call to undefined function sqlsrv_connect() in 錯誤!!

Call to undefined function sqlsrv_connect() 是說根本就沒這個函數,你確定擴展都加上了么。。。


檢查你的php的ext擴展文件夾裡面有沒有 php_sqlsrv_53_nts_vc9.dll 這個文件


有的話,還要在c盤的windows下的 php.ini 的擴展部分加一句

extension=php_sqlsrv_53_nts_vc9.dll

再重啟伺服器


還有就是你的連接參數格式有問題


$connstr=array("Database"=>"test","Uid"=>"sa","Pwd"=>"123456","CharacterSet"=>"UTF-8");
$conn=sqlsrv_connect('127.0.0.1',$connstr);


你看,伺服器地址是字元串,不加括弧,至於數組的鍵名是否區別大小寫我就不太清楚了,不過我這個是實際用的,應該是正確的,你不妨全抄過去試一試

Ⅲ php連接mssql資料庫的幾種方式

hp連接mssql資料庫有幾個注意事項,尤其mssql的多個版本、32位、64位都有區別。
首先,php.ini文件中;extension=php_pdo_mssql.dll
;extension=php_pdo_odbc.dll
前面的分號去掉,對應的使哪種方式連接mssql。注意要重啟服務使其生效。
一、建立連接
1、odbc
首先,在php程序所在的伺服器設置odbc。這里32位和64位操作系統有區別。32位的從控制面板中管理工具中的數據源(odbc)直接建立就可以了,64位的要運行C:\Windows\SysWOW64\odbcad32.exe
從這裡面設置。注意:上面只的是資料庫伺服器為32為的,數據源設置伺服器為32位和64位兩種的情況。只要兩個伺服器建立的數據源位數一致就好。
下面是odbc建立連接代碼。
$con
=
odbc_connect('odbc名稱','用戶名','密碼');
2、連接mssql2000
$con
=
mssql_connect('資料庫地址','用戶名','密碼');
3、連接mssql2008
$connectionInfo
=
array("UID"=>用戶名,"PWD"=>核圓瞎密碼,"Database"=>"資料庫名稱");
$con
=
sqlsrv_connect(
資料庫地址,$connectionInfo);
二、輸入查詢代碼
這個都一樣,可以直接寫入,也可以從mssql中驗證好後復改空制過來。簡單點說就是把一個sql語句賦值給一個變數。
類似下面代碼
$query
=
"SELECT
top
12
*
資料庫名稱
order
by
id
desc";
三、建立查詢並取出數據
1、odbc
$result
=
odbc_do($con,$query);
while(odbc_fetch_row($result))
{
$變腔逗量名稱
=
odbc_result($result,
"欄位名稱");
}
2、連接mssql2000
$result
=
mssql_query($con,
$query);
while($row
=mssql_fetch_array($result))
{
$變數名稱
=
$row["欄位名稱"];
}
3、連接mssql2008
$result
=
sqlsrv_query($con,
$query);
while($row
=
sqlsrv_fetch_array($result))
{
$變數名稱
=
$row["欄位名稱"];
}
在php5.3及以後的版本中不附帶sqlsrv庫了。所以要從微軟這里下載。
四、關閉連接
這個沒有什麼區別,分別是odbc_close();和mssql_close()和sqlsrv_close();

Ⅳ 怎樣用PHP連接sql資料庫

1、學習的方法,最好是看手冊
在前一篇文章中涉及到了連接資料庫sqlsrv_connect();還記得我們mysql連接資料庫的時候也是mysql_connect();兩者操作資料庫是很相似的。從零基礎開始學起的話,只能是查閱手冊。查看一下sqlsrv有哪些函數提供我們使用!推薦網址是:

【注意】很多的方法都跟mysql提供的方法很相似,看到後面的函數名就大概知道裡面的用法,比如說mysql執行sql語句的時候調用mysql_query();而sqlserver執行sql語句的時候調用也是sqlsrv_query(),但是特別注意一點就是,它們的傳遞參數不一樣。詳細的只能看一下手冊。接下來我簡單總結一下操作數據的方法

2、連接資料庫sqlsrv_connect()

<?php$serverName = "serverNamesqlexpress";//伺服器的名字,本地localhost$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");$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));
}

3、操作資料庫
1)執行sql語句sqlsrv_query(),返回值為true或者false,這里函數的用法跟mysql_query(),不一樣。它需要把連接的資源句柄當作參數傳進去,看源碼。資源句柄就是上面代碼連接資料庫的「$conn」。

$sql = "select * from test1"; //sql語句$data = sqlsrv_query($conn,$sql); //$conn資源句柄if($data == true){ die("執行成功");
}else{ die("執行失敗");
}

2)獲取結果集

//以數值索引數組、關聯數組或這兩種數組的形式檢索下一行的數據。類似於mysql_fetch_arraysqlsrv_fetch_array
//以對象形式檢索下一行的數據。sqlsrv_fetch_object 1234
$sql = "select * from test1";$data = sqlsrv_query($conn,$sql);if($data == true){ while($row = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { echo $row['id'].", ".$row['name']."<br />";
}else{ die( print_r( sqlsrv_errors(), true));
}
}
$sql = "SELECT fName, lName FROM Table_1";$stmt = sqlsrv_query( $conn, $sql);if( $stmt === false ) { die( print_r( sqlsrv_errors(), true));
}while( $obj = sqlsrv_fetch_object( $stmt)) { echo $obj->fName.", ".$obj->lName."<br />";
}

3)顯示錯誤信息sqlsrv_errors():上面都有用到這個函數,只要是操作資料庫發生錯誤,都可以使用這個函數列印出來看一下壓
這里就不用上代碼了

Ⅳ php 怎麼連接sqlserver

  1. 准備工作:SQLSRV20.EXE(PHP mssql擴展庫)、php_mssql.dll文件。

  2. 安裝PHP mssql擴展庫:安裝SQLSRV20.EXE,選擇解壓路徑為:D:wampinphpphp5.2.9-2ext。

  3. 修改php.ini配置文件:打開php.ini配置文件,將其中

    ;extension=php_mssql.dll

    ;extension=php_pdo_mssql.dll

    前面的分號去掉,然後再」Dynamic Extensions」區域的後面添加php_sqlsrv的動態鏈接庫文件: extension=php_sqlsrv_52_ts_vc6.dll

    extension=php_pdo_sqlsrv_52_ts_vc6.dll

  4. 注意事項:查看D:wampinphpphp5.2.9-2ext目錄下有也Php_mssql.dll文件。如果沒有,則下載該文件,復制到該目錄下。

  5. 測試環境配置是否成功:打開瀏覽器,在地址欄輸入http://localhost/?phpinfo=1 ,如果在打開的網頁中查詢到如下頁面內容,則配置成功,否則配置失敗。


Ⅵ php怎麼鏈接sqlserver資料庫進行增刪改查

php有專門的sql server操作函數,舉個簡單的例子,是查詢的

$serverName="localhost";//資料庫伺服器地址
$uid="root";//資料庫用戶名
$pwd="123456";//資料庫密碼
$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>'databasename');
$conn=sqlsrv_connect($serverName,$connectionInfo);
if($conn==false){
echo"連接資料庫失敗!";
die(print_r(sqlsrv_errors(),true));
}
$sql="select*fromuser";
$query=sqlsrv_query($conn,$sql,array(),array("Scrollable"=>SQLSRV_CURSOR_KEYSET));
$num_rows=sqlsrv_num_rows($query);
if($num_rows>0){
while($row=sqlsrv_fetch_array($query)){
echo$row['aaaa'];
}
}

其它的操作也同理,舉一反三

Ⅶ php怎麼樣連接sql資料庫

1、軟體配置

Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2資料庫,wamp2.2中的php版本是5.3.10。

Php環境也可以換成php+apache。

2、支持連接MySQL Server配置

php版本5.3以前,有php_mssql功能,可以使用,但是5.3及以後的版本不支持。

2.1、php連接mssql設置(php5.3以前版本)

(1)、打開php.ini,將
;extension=php_mssql.dll前面的分號(;)去掉,然後重啟 Apache。如果不行的話,進行第2步。

(2)檢查一下你的php安裝目錄下的ext下面有沒有php_mssql.dll存在,如果沒有,從www.php.net重新下載一個php安裝,要下載那個壓縮包的才是最完整的。
如果ext目錄下已經有了php_mssql.dll,那麼你需要打開php.ini,找到
extension_dir = "./ext"
這一句(或者類似的,不一定是"./ext",查找"extension_dir"即可),然後把"./ext"修改為你的php安裝目錄的ext目錄的完整路徑,比如"c:/php/ext",或者"c:/program files/php/ext"這樣。然後再次重啟 Apache。如果還是不行的話,可能就需要第3步了。

(3)把 php 目錄下的 ntwdblib.dll 和 php_mssql.dll 復制到 system32的系統目錄中去,然後重起Apache。

(4)然後就可以連接MSSQL,並進行一些操作了。連接例子如下:

2.2、php連接sqlsrv(php5.3以及以上版本)

(1)、下載Microsoft Drivers forPHPfor SQL Server,官方下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098,我使用的是SQLSRV2.0。

(2)、解壓下載下來的文件將php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件復制到php安裝目錄下的ext文件夾中。此處根據版本不同使用的文件不同。

(3)、在php.ini中添加

extension=php_sqlsrv_53_ts_vc9.dll

extension=php_pdo_sqlsrv_53_ts_vc9.dll

到很多;extension=***.dll語句後面,注意extension_dir 指向的位置是否正確。

(4)、重啟apache,然後訪問http://apache訪問地址/?Phpinfo=1,出現下面圖片中的內容,則代表配置正確。

(5)、寫測試代碼,測試代碼如下:

(6)、上面完成之後,測試代碼的時候會出現連接失敗,因為沒有安裝sql server nation client ,本地客戶端,去下載合適的客戶端,我使用的是Microsoft? SQL Server? 2012 Native Client,下載地址:

(7)、安裝完成之後,在重新啟動apache,然後訪問就可以連接成功了。

(8)、注意:在php.ini文件所在的文件夾中必須要有ntwdblib.dll文件存在。

閱讀全文

與phpsqlsrvconnect相關的資料

熱點內容
動力轉向編程 瀏覽:831
史瓦格期貨基本分析pdf 瀏覽:811
怎麼更改appid名字 瀏覽:235
抖音很解壓的東西 瀏覽:520
怎麼在app上進行機場升艙 瀏覽:133
fx3ga用什麼編程軟體 瀏覽:498
深度學習演算法樣本數量 瀏覽:966
電腦文件夾打開畫面塊狀 瀏覽:790
固態硬碟與機械盤的加密方法 瀏覽:634
unix編譯軟體 瀏覽:563
影視製作中西書局中央編譯出版社 瀏覽:822
變數作用域是編譯器決定的嗎 瀏覽:755
linux結構分析 瀏覽:812
程序員記錄歷史 瀏覽:798
編譯器怎麼調用構造函數的 瀏覽:97
高質量cpdf 瀏覽:824
福建電信代理伺服器雲主機 瀏覽:618
美圖看看pdf 瀏覽:434
編譯後報錯 瀏覽:294
網路設備怎麼加密 瀏覽:789