php連接mssql php連接mssql2005數據庫代碼

在研究ezSQL的時候就看到了mssql_connect()等一些php提供的連接MSSQL的函數,本以為php這個開源的風靡世界的編程語言對連接微軟的數據應該是不在話下的,但是到真正執行的時候,才發現困難多多。

一開始我下載的php版本是5.93的,下載下來添加環境變量等等搞了半天后,phpinfo()這個函數終于成功的運行在瀏覽器中了。然后當我在滿世界的找php_mssql.dll,才發現在5.3以及以上版本的php中已經不是原生態的支持mssql了。

好不容易找到了微軟Microsoft Drivers 3.0 for PHP for SQL Server,心想微軟的東西應該做的可以,卻無奈的發現SQLSRV30.EXE沒有辦法運行:“SQLSRV30.EXE 不是有效的win32程序”。

在網上搜索了半天,總結了以下一些可行的辦法,但是在這之前你需要:

配置MICROSOFT SQL SERVER

1、下載并安裝sql server。現在這個版本就比較多了從2000 到2008不等,找一個你自己下載吧。

2、開放tcp/ip連接方式,使得數據庫能夠遠程訪問。SQL Server Configuration Manager -> Network Configuration -> Protocols -> TCP/IP enabled

3、打開數據管理界面,添加用戶和數據庫。

4、安裝php和配置IIS服務。

5、打開php所在文件夾里面的 php.ini文件,并添加:

?
1
2
mssql.textlimit = 20971520
mssql.textsize = 20971520

做完了這些之后,你可以按照下面三種方法來連接數據庫了:

使用php自帶的方法連接MSSQL(5.3及以后版本不適用)

確保php ext擴展庫文件夾下有php_mssql.dll,然后在PHP.ini中的配置中,將

;extension=php_mssql.dll

前面的“;”去掉。

然后你可以測試連接了:

首先是mssql_connect方式,這種方式比較方便,但是可能會遇到服務器沒有安裝mssql模塊的情況。

$ms_host = "192.168.0.xx"; //主機

$ms_user = "sa"; //用戶名

$ms_pass = "aa"; //密碼

$ms_data = "test";? //MSSQL庫名

$ms_connect = mssql_connect($ms_host, $ms_user, $ms_pass)

or die("Couldn't connect to SQL Server on $$ms_host");

?

$ms_select = mssql_select_db($ms_data, $ms_connect)

or die("Couldn't open database $ms_select");

?

$update??? = "SELECT reportid

??????? FROM ReportInfo

??????????? WHERE? (report_goods_id = '$id') ;";

$result = mssql_query($update);

return $result;
報錯可能是:
(1) Call to undefined function mssql_connect() :這是因為沒有開啟mssql模塊。
①在php.ini中找到:
extension=php_mssql.dll,和extension=php_pdo_mssql.dll,確定他們的前面沒有“;”。
②在php.ini中找到:
extension_dir = "C:\php\ext\"。這里是extension目錄,確認這個目錄下有php_mssql.dll、php_pdo_mssql.dll。
③php.ini的位置,extension_dir的位置可以使用phpinfo()查看。

(2)mssql_connect() : Unable to connect to server: 192.168.0.xx:連接失敗,最可能是的是沒有開啟mssql的遠程連接。這里有具體的開啟方法。

http://tech.ccidnet.com/art/1106/20090225/1689795_1.html

當然,我的情況是這樣設置了以后還是不能連接,后來我注意到我的服務器上有一個運行的圖標,而那臺雖然開啟了遠程連接,而且用SQL Server Management Studio也可以正常連接的服務器則沒有這個圖標,也許是這個原因。具體是什么情況改天問一下mssql的專家們。
php連接mssql(mssql_connect?<wbr>和odbc方式)
因為另一臺服務器是iis的,沒有安裝php的mssql模塊,所以我采用odbc的連接方式,代碼如下:

$ms_host = "test"; //這里是ODBC的連接名稱

$ms_user = "test"; //用戶名

$ms_pass = "test123"; //密碼

?

$ms_connect =odbc_connect($ms_host, $ms_user, $ms_pass) or die("Couldn't connect to SQL Server on MSSQL");
在那臺服務器上建立一個odbc連接,具體操作是:
①打開控制面板-管理工具-數據源 (ODBC)-“系統DSN”的選項卡,點擊“添加”,在“創建新數據源”中選擇“SQL Native Client”。
②填入數據庫基本資料,因為是本地數據庫,所以填寫(local)
php連接mssql(mssql_connect?<wbr>和odbc方式)

幾天一直都為php連接mssql的事而煩惱,因為試做很多種不同的方法都不行,原因一直都未明確。不過,今日

我的php終于可以連接到mssql了。所以我接下來,寫寫這幾天我所得的經驗。

1.首先,版本的問題。

?????? 我本人現在使用的是wamp1.7php版本5.0.* ,不過,不是所有的wamp版本都支持

?????? mssql的,我之前使用的是wamp2.1版,php的版本是

?????? 5.3.*的,由于php的發展方向是與mysql搭配的,所以到php5.3.*時已經唾棄了mssql

?????? 的連接功能。所以,我的建議就是重新下載一個php_mssql.dllext文件下

?????? 或者直接使用比較低版本的wamp,對于自己搭建的環境,下一個版本低于5.3.*的php。

?????? 可能還有個疑問,就是wamp2.1php擴展那里是不是還有php_mssql選擇的嗎?但你到ext

?????? 目錄下一看就知道,php_mssql.dll是不存在的,這個是形同虛設的。

?????? 所以很多時候顯示的錯誤:

?????? Fatal error:Call to undefined function mssql_connect() in D://......

?????? 都是沒有php_mssql.dll或者是沒配置php_mssql的原因。

2.開始配置php_mssql

?????? a、打開php.ini,將;extension=php_mssql.dll前面的;去掉

?????? b、還是php.ini,將mssql.secure_connectiondoff改為on

?????? 這樣就是php這方面的簡單配置完成了,然后在打開phpinfo測試

??????www目錄下新建一個test.php文件,代碼如下:

?????? <?php

????????????? echo phpinfo();

?????? ?>

?????? 再打開localhost/test.php.

?????? 如果開啟了mssql模板,那就算是php這方面的配置成功啦。

3.連接mssql

?????? 還是剛才的test.php

?????? <?php

????????????? //echo phpinfo();

????????????? $conn = mssql_connect("localhost","sa","root");

?????? ?>

?????? 這時打開lcoalhost/test.php,頁面會報錯,如下:

?????? Warning: mssql_connect()[function:mssql_connect]:Uable to connect to server:localhost

?????? in D:\............

?????? 這個時候我們的phpApache已經可以連接到sql server了,下面是對sql server的配置

?

?????? 右鍵單機“我的電腦”->“管理”->"服務和應用程序"->"SQL Server 2005網咯配置"

?????? ->"MSSQLSERVER的協議"->"TCP/IP"->右鍵“啟動”,然后重啟所有服務器。

這步是很多初學者剛用SQL server時忽略的一步,這步都是許多網上關于php連接mssql的文章中都是沒有的.

?????? 接下來,刷新頁面,如果沒 WarmingWarning: mssql_connect()[function:mssql_connect]:Uable to connect to server:localhost

?????? 那就成功了。

?????? 很多新手包括我之前都有這樣的疑問:如果我的SQL serverwindow身份驗證的,那我的服務器、賬號和密碼寫什么?

?????? 1.先講服務器名稱:這個是可以多種的。比如:我的就是PC--20101211CQF,這是裝電腦時就命名的,從來沒改過。

?????? a.就是你服務器的名稱,如果不知道的可以運行SQL server management studio

?????? 在連接的對話框中你會看到服務器名稱的。

?????? b.ip地址。如果是本機的話就127.0.0.1或者localhost,不是本機就寫裝了SQL server機子的ip

?????? 當然ipv6的地址都可以。

?????? 2.賬號和密碼:

?????? a.如果是window身份驗證的,就直接為空 比如:$conn = mssql_connect("lcoalhost","","")

?????? b.如果是有賬號的就,$conn = mssql_connect("localhost","賬號","密碼")sa是管理員賬號,相當于mysqlroot

?????? 開始時SQL server時不能sa登錄的,需要設置登錄密碼才能生效,登錄,至于這個就留個讀者百度了。

?????? 如果有什么疑問可以留言

注:用PHP操作MSSQL比在ASP連接MYSQL要簡單,所以,當需要MSSQL與MYSQL并存時,用PHP連接MSSQL來操作MYSQL與MSSQL并存比較簡單好用.如果是ASP連接MYSQL,需要安裝一個MYSQL驅動,默認windows的ODBC沒有安裝,很遺憾...
1.在web服務器上至少安裝了mssql的客戶端
2.打開php.ini把;extension=php_mssql.dll前面的分號去掉
有必要話:需要制定extension_dir
3.推薦使用php<=4.0.9<=5.0.3目前我還沒有連接成功過4.010和5.0.3
4.數據庫的連接分頁可以到phpe.net上獲取到相應的class
下面是我根據那里修改的一個class

在研究ezSQL的時候就看到了mssql_connect()等一些php提供的連接MSSQL的函數,本以為php這個開源的風靡世界的編程語言對連接微軟的數據應該是不在話下的,但是到真正執行的時候,才發現困難多多。

一開始我下載的php版本是5.93的,下載下來添加環境變量等等搞了半天后,phpinfo()這個函數終于成功的運行在瀏覽器中了。然后當我在滿世界的找php_mssql.dll,才發現在5.3以及以上版本的php中已經不是原生態的支持mssql了。

好不容易找到了微軟Microsoft Drivers 3.0 for PHP for SQL Server,心想微軟的東西應該做的可以,卻無奈的發現SQLSRV30.EXE沒有辦法運行:“SQLSRV30.EXE 不是有效的win32程序”。

在網上搜索了半天,總結了以下一些可行的辦法,但是在這之前你需要:

配置MICROSOFT SQL SERVER

1、下載并安裝sql server。現在這個版本就比較多了從2000 到2008不等,找一個你自己下載吧。

2、開放tcp/ip連接方式,使得數據庫能夠遠程訪問。SQL Server Configuration Manager -> Network Configuration -> Protocols -> TCP/IP enabled

3、打開數據管理界面,添加用戶和數據庫。

4、安裝php和配置IIS服務。

5、打開php所在文件夾里面的 php.ini文件,并添加:
mssql.textlimit = 20971520
mssql.textsize = 20971520

做完了這些之后,你可以按照下面三種方法來連接數據庫了:

使用php自帶的方法連接MSSQL(5.3及以后版本不適用)

確保php ext擴展庫文件夾下有php_mssql.dll,然后在PHP.ini中的配置中,將

;extension=php_mssql.dll

前面的“;”去掉。

然后你可以測試連接了:

1 //連接MSSQL
2 $conn=mssql_connect("實例名或者服務器IP","用戶名","密碼");
3
4 //測試連接
5 if($conn)
6 {
7 ????echo "連接成功";
8 }

Microsoft Drivers for SQL Server for PHP

2008年7月微軟發布了一個新的為php連接SQL Server的驅動,它改善了php自帶的連接MSSQL函數的一些缺點,并且是以php擴展插件的形式開發的,通過它你可以用php輕松的讀寫微軟的數據庫了。

如果你服務器使用的是IIS的話,那么就一定要從這里去下載:

http://php.iis.net/

因為從上述鏈接進去其實是微軟整合的網絡開發平臺,只提供在線安裝,但是很方便的整合了PDO插件和php,當然還有微軟的其它一些開發功能,但是如果你沒需要,你可以不裝了,那些是在visual studio中的。

但是如果你用的是 Apache的話,你可以去這里直接下載這個插件了,它其實是一個解壓文件,解壓出來幾個DLL文件,具體操作如下:

1)下載驅動包:http://www.microsoft.com/en-us/download/details.aspx?id=20098.

2)將DLL文件解壓到 PHP extension_dir 目錄,如果出現說SQLSRV30.EXE 不是有效的win32程序,可能是缺少某些庫,可能是vc10,也有可能是沒有用administrator權限運行。

extension_dir = “C:/PHP/ext”

sqlsrv3

3)在php.ini配置文件內引用相應的動態鏈接庫文件

extension=php_sqlsrv_52_ts_vc6.dll

extension=php_pdo_sqlsrv_52_ts_vc6.dll

extension=php_pdo.dll

其中的52、53表示就是php的5.2.x和5.3.x 版本,選擇跟你php版本相匹配的;

選擇vc6或vc9的主要看你使用的是什么web服務器軟件,如果使用的是IIS那就選擇vc9的,如果是Apache則選擇vc6的。

至于ts和nts,就要看你安裝的php版本是線程安全版的還是非線程安全版,ts是線程安全,nts是非線程安全。

更多
  • 該日志由 于2017年12月13日發表在 未分類 分類下, 你可以發表評論,并在保留原文地址 及作者的情況下引用到你的網站或博客。
  • 本文鏈接: php連接mssql php連接mssql2005數據庫代碼 | 幫助信息-動天數據
  • 文章標簽:
  • 版權所有: 幫助信息-動天數據-轉載請標明出處
  • 【上一篇】 【下一篇】

    0 Comments.