日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
php連接mssql失敗怎么辦

本文操作環(huán)境:windows7系統(tǒng)、php5版、DELL G3電腦

10年積累的網(wǎng)站設計、做網(wǎng)站經驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設流程,更有文圣免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

php連接mssql失敗怎么辦?

關于PHP無法連接MSSQL數(shù)據(jù)庫的解決辦法:

php 數(shù)據(jù)庫 sql server extension sqlserver 服務器

今天接到一個問題要php5+iis6+mysql5的平臺環(huán)境上訪問sqlserver2000的數(shù)據(jù),結果運行時發(fā)現(xiàn)php連接遠程mssql數(shù)據(jù)庫出錯,出錯代碼如下:

Warning: mssql_connect(): Unable to connect to server:

想想以前都是沒問題的,怎么回事呢?后來去網(wǎng)上搜索,發(fā)現(xiàn)一篇文章,才發(fā)現(xiàn)原來服務器是需要安裝mssql才能用php連接mssql的,本來新服務器上 我是不需要用到mssql的,但是現(xiàn)在沒辦法了,只能把擴展了,擴展了mssql之后就沒問題了。

擴展方法:

1、在c:/windows/php.ini文件中找到 

;extension=php_mssql.dll 把前面的分號去掉

找到

;extension_dir = "./" 把擴展庫目錄改為php的庫目錄如:extension_dir = "c:/php/ext"

2、把php_mssql.dll文件復制到c:/windows/system32/目錄下

3、重啟iis。

下面是找到的一篇文章。

php配置:

在php.ini文件里設置如下,找到

;extension=php_mssql.dll 把前面的分號去掉

找到extension_dir = d:/extension/

你的php.ini里面可能不是d:/extension/

改成在php安裝目錄下面的extensions目錄下面的php_mssql.dll,所在的路徑,如果你沒有把它移動到其他地方(假設你的php安裝路徑是d:/php)

就改成extension_dir=d:/php/extensions/

然后重新啟動web服務器

這一點很容易做到,但是做完這樣的設置后還是連不上,錯誤的信息如下:

MS SQL Server 數(shù)據(jù)庫連接錯誤!請檢查數(shù)據(jù)庫主機變量設置是否正確!!!

而主機的變量設置我是一遍一遍的檢查,那些設置是一點問題都沒有的,翻遍網(wǎng)頁,找到了下面的這點蛛絲馬跡:

php.com資料:
I am trying to connect to SQL Server 2000 from PHP
I bumped to following warning:
Warning: mssql_connect(): Unable to connect to server: SERVER/Portal
....... on line 5
on line 5 there is:
$db_connect = mssql_connect('SERVER/Portal', 'sa', 'my_passwd');
I did the following
1.enabled php_mssql.dll extension in PHP.ini
2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll
I search lots of profile throught web ,but no one give me proper answer to resolve it.
after a few hour ,I found the problem was caused by
ntwdblib.dll ,which version is 7.00.839 ,when I replaced old ntwdblib.dll with the new
ntwdblib.dll ,which version is 8.00.194 ,all problem are solved.
We had some, read A LOT, of problems with MSSQL under Windows 2003.
We had 2 the same windows, php, php-ini, everything machines but only one could connect.
Unable to connect was the error message.
Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00....
and the version of the one on the SQL Server install was 8.00.... so we copied this one in
the php and apache dir and it worked.

問題就這樣被找到了,惹禍的是它 ntwdblib.dll

ntwdblib.dll的主要作用是提供sql server連接服務。

我用的php版本是5.25,在安裝它的服器的 windows/system32/ 下我查到ntwdblib.dll文件的版本是2000.2.8.0 ,這個版本支持的是sql server 7.0, 因為安裝PHP時會把dlls下面的所有文件覆蓋到系統(tǒng)

目錄下,所以當我用它去連接 sql server 2000 的時候當然會是無法連接了。

后來我在一臺正常安裝sql server 2000 的服務器上查到 ntwdblib.dll的版本是 2000.80.2039.0,我把這個文件拷過去,覆蓋掉以前的版本,重啟服務器后,一切正常。

補充:如果數(shù)據(jù)庫名的開頭是數(shù)字時也會提示無法打開,這時要做的很簡單,把數(shù)據(jù)庫的名字用中括號 [ ] 括起來就搞定了,如 123bbs 改寫成 [123bbs]就沒有問題了,另外如果你的數(shù)據(jù)庫名字與sql server中的保留字沖突的話也會出現(xiàn)這種情況,用中括號的方法一樣可以解決。

最終,PHP無法正確連接sql server 2000的問題終于解決了,雖然耗費大半天的時間,但收獲還是很大的,現(xiàn)在把它貼出來,也讓遇到同樣問題的兄弟們少走一些彎路。

最后,如果您的目標MSSQL電腦裝有防火墻,請開放1433端口,windows xp系統(tǒng)更是如此!

看了以上資料讓裝sqlserver2000的朋友傳“ntwdblib.dll ”文件我,自己本地測試果然成功,但把上傳到服務器上,結果info()沒有mssql擴展了,本來已經加載的怎么就沒有了,把php.ini文件和本地對比基本沒有差別,就是擴展不了,本地一切正常。

最后發(fā)現(xiàn)還是“ntwdblib.dll ”的版本問題,找到個更高的“ntwdblib.dll ”版本替換。


名稱欄目:php連接mssql失敗怎么辦
當前地址:http://www.5511xx.com/article/cohjhph.html