2012-06-03 38 views
1

我得到這個惱人的消息:如何在php中運行mssql函數?

Fatal error: Call to undefined function mssql_connect()

我讀過許多線程,他們只是說,取消對php_mssql.dll,但在我的擴展文件夾沒有這樣的文件,也不是在php.ini上市。

我似乎無法在任何地方找到它。發佈在論壇上的所有鏈接都被打破了,我完全被這個打破了。

我也嘗試從Microsoft下載最近的文件,我解壓縮了這一個:php_pdo_sqlsrv_54_ts.dll,並將它添加到擴展列表中,但仍然得到相同的錯誤。

有沒有什麼有意義的方法可以做到這一點?或者,也許我需要重新安裝PHP?

編輯

我添加了以下文件到php.ini擴展:

extension=php_pdo_sqlsrv_53_nts.dll 
extension=php_pdo_sqlsrv_53_ts.dll 
extension=php_sqlsrv_53_nts.dll 
extension=php_sqlsrv_53_ts.dll 
extension=php_pdo_mssql.dll 
extension=php_pdo_odbc.dll 

但仍然沒有運氣... :(

回答

1

好吧更多的信息,這是我如何解決它:

我只是安裝了PHP 5.2 ,然後添加本機mssql擴展,我認爲它看起來像:

extension=php_mssql.dll 

不像5.3,5.2版本有nat與Windows的mssql配合使用的二進制文件。

(對於很多人來說,安裝PDO並不是一種選擇,因爲它需要太多的工作,並且學習了一些新的語法,儘管它應該更「可靠」)。

最後,我下載MSVCR71.DLL從

http://www.dll-files.com/dllindex/dll-files.shtml?msvcr71 

沒有此文件到服務器的連接被切斷,並和不穩定。

就是這樣。

1

這是我與鏈接PHP 5.3的方式在windows平臺上一起使用sql-server 2008(使用PDO代替mssql_ *函數):

First總之,您需要安裝microsoft mssql native client(將頁面向下滾動到「Microsoft®SQLServer®2008 R2 Native Client」);這樣做之後,留在php.ini中唯一的擴展:

extension=php_pdo_sqlsrv_53_ts.dll

現在,通過CMD調用php -m檢查擴展名列表: 您應該看到[PHP模塊]部分pdo_mssql;

現在,重新啓動apache。您可以通過調用new PDO()連接到服務器:

$connection = new PDO("sqlsrv:Server=localhost,1521;Database=testdb", "UserName", "Password");

可以發現here