『壹』 php怎麼連接sql server 2012
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資料庫
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文件存在。
『叄』 php怎麼連接sql server 2012
一、環境
php5.2.5
sqlserver2008
win7
二、配置php
1、打開php.in將extension=php_mssql.dll的注釋符號去掉。
2、打開php.in將mssql.secure_connection
=
off改為on。
3、從5.2開始,php就不再提供mssql.dll了,所以要php連接sql
server
2005/2008/2012必須要使用微軟提供的sql
server
for
php
2.0/3.0
這個文件可以上微軟官網下載(sqlsrv20.exe/sqlsrv30.exe),然後執行到wamp\php\ext文件夾下
打開php.ini文件
在extensions後面加上:
extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll
註:52代表php5.2
假如是php5.3就拷貝php_sqlsrv_53_ts_vc6.dll
關於vc6和vc9的區別
vc6
版本是使用
visual
studio
6
編譯器編譯的,如果你是在windows下使用apache+php的,請選擇vc6版本。
vc9
版本是使用
visual
studio
2008
編譯器編譯的,如果你是在windows下使用iis+php的,請選擇vc9版本。
『肆』 php 怎麼連接sqlserver
准備工作:SQLSRV20.EXE(PHP mssql擴展庫)、php_mssql.dll文件。
安裝PHP mssql擴展庫:安裝SQLSRV20.EXE,選擇解壓路徑為:D:wampinphpphp5.2.9-2ext。
修改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
注意事項:查看D:wampinphpphp5.2.9-2ext目錄下有也Php_mssql.dll文件。如果沒有,則下載該文件,復制到該目錄下。
測試環境配置是否成功:打開瀏覽器,在地址欄輸入http://localhost/?phpinfo=1 ,如果在打開的網頁中查詢到如下頁面內容,則配置成功,否則配置失敗。
『伍』 php連接sql2000問題
PHP完全可以連接MSSQL的。
1.首先需要MSSQLClientTools是一個dll叫做ntwdblib.dll,它通常在MSSQLServer安裝以後被到系統的system32文件夾下;如果是SQLServer就在本地,那你需要核實的是該ntwdblib.dll的版本與SQLServer的版本一致(2005對應2000.80.194.0,2000對應的是2000.2.8.0;)如果SQLServer在遠程,需要將那個ntwdblib.dll拷貝到本機器的system32文件夾下;
(這里經常遇見的一個問題是,如果php<通常是較老的ntwdblib.dll>晚於SQLServer安裝的話,php的ntwdblib.dll會覆蓋SQLserver安裝時在system32下的ntwdblib.dll,導致鏈接是提示:鏈接不上資料庫)
2.核實完system32下的ntwdblib.dll之後,還需要將正確版本的ntwdblib.dll覆蓋php文件夾下的ntwdblib.dll;
3.使用MSSQLServer的方法與MySQL的方法很類似;
如下:
<?php
//鏈接資料庫
$conn=mssql_connect('IBM-F24B11ED1CCSQLEXPRESS','sa','123456');
mssql_select_db('LabMIS',?$conn);
//query語句
$Query="select*fromadmin";
$AdminResult=mssql_query($Query);
//輸出結果
$Num=mssql_num_rows($AdminResult);
for($i=0;$i<$Num;$i++)
{
$Row=mssql_fetch_array($AdminResult);
echo($Row[1]);
echo("<br/>");
}
?>
『陸』 PHP+MS SQL怎麼連接啊
這個版本在生成的時候,就「--without-mssql」關閉了MSSQL了,加擴展是加不進去的,你需要下載一個沒有「--without-mssql」的版本(7.0.25這個版本就可以了),然後下載SQLSRV的dll,加到PHP裡面,這時候,phpinfo就可以看到SQLSRV了,但是這時候,資料庫連接的時候還是會失敗,這時候,就需要下載個微軟官網下載ODBC驅動了,然後就可以連上了,我也是搞了2天才搞起來。
『柒』 幾種常用PHP連接資料庫的代碼示例
PHP連接資料庫之PHP連接MYSQL資料庫代碼
PHP連接資料庫之PHP連接ACCESS資料庫代碼方法
PHP連接資料庫之PHP連接MS SQL資料庫代碼方法
安裝SQL伺服器並添加PHP的MSSQL擴展
使用以下代碼連接並測試
PHP連接資料庫之PHP連接Oracle資料庫
PHP提供了兩套函數與Oracle連接 分別是ORA_和OCI函數 其中ORA_函數略顯陳舊 OCI函數更新據說更好一些 兩者的使用語法幾乎相差無幾 你的PHP安裝選項應該可以支持兩者的使用
『捌』 如何讓php5.5連接上mssql
PHP 查看是否支持MSSQL的方法:
檢測是否存在mssql_connect函數;
<?php
if (function_exists("mssql_connect")){
echo 'PHP環境支持MSSQL!';
}else{
echo '環境不支持MSSQL資料庫!';
}
查看phpinfo中mssql配置項是否開啟,如果存在mssql配置項,則支持;否則,不支持。;
配置php連接mssql:
開啟mssql擴展;打開php.ini配置文件,去掉extension=php_pdo_mssql.dll和extension=php_mssql.dll前面的「;」然後重啟apache伺服器;
將PHP目錄下ext目錄下的php_mssql.dll和ntwdblib.dll,復制到WINDOWS/system32文件夾下,然後重啟apache即可。
『玖』 php連接mssql 2008 怎麼寫
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連接mssql比連接mssql的函數少了一些,但是也夠用了。具體函數可以參考php官方手冊