2010-03-14 58 views
0

我剛剛在Windows Vista上安裝了Apache 2.2.15/PHP 5.3.2/MySQL 5.1.44。 Apache工作正常,PHP功能正常,MySQL在CLI上工作。但是,當我嘗試通過PHP訪問MySQL時,出現錯誤(致命錯誤:調用未定義的函數mysql_connect())。 extension = php_mysql.dll和extension = php_mbstring.dll在php.ini文件中取消註釋,並且PHP位於系統路徑中。頂層PHP目錄或ext目錄中沒有libmysql.dll。 MySQL bin目錄中有一個libmySQL.dll文件(也在系統路徑中);我嘗試重命名它,但是這並沒有做任何事情PHP不會解析MySQL語句

此外,如果有人想知道,我最初使用MSI安裝程序安裝PHP,但它缺少一些DLL,所以我從zip文件安裝。

我想我已經用盡了所有的選擇。任何有關這個問題的幫助將非常感激。

在此先感謝。

+0

如果'mysql'擴展程序實際安裝並正在運行,請檢查您的'phpinfo'。 – 2010-03-14 10:48:21

+1

嘗試將'extension = php_mbstring.dll'移動到擴展列表的頂部並在任何其他擴展之前加載。它幫助我在PHP 5.2.10 – 2010-03-14 10:59:25

回答

0

聽起來好像你沒有正確安裝或配置PHP的MySQL mod。我建議在Linux上使用AMP,因此對於Windows沒有任何特定說明感到抱歉。

1

IIRC msi安裝程序設置了一些影響php配置的註冊表值,請參閱http://docs.php.net/configuration.changes#configuration.changes.windows。這可能會改變所使用的php.ini的位置。您可能想要刪除這些註冊表項。無論如何,你沒有編輯phpinfo()輸出中顯示的文件?

你使用哪種構建的php?你可以從http://windows.php.net/download/下載嗎?然後你可能會在PHP核心DLL中內置新的mysqlnd transport driver,並且不需要libmysql.dll。 mysqlnd驅動程序應該顯示在phpinfo()的輸出中。可以?

+0

是的,我有該鏈接的版本(5.3.2)。沒有用於PHP的註冊表項。 mysqlnd顯示在phpinfo頁面(hussain.mooo.com/phpinfo.php)。我使用的ini文件是正確的。 此外,php_mysql和php_mbstring是我正在加載的唯一擴展。 – Hussain 2010-03-14 17:56:32

+0

這很奇怪,你鏈接到的phpinfo()有一個「mysql」部分'客戶端API版本\t mysqlnd 5.0.7-dev - 091210 - $ Revision:294543 $'。你應該很好去...... – VolkerK 2010-03-14 18:22:56

+0

雖然我不認爲問題是與mysqlnd。現在的問題是PHP無法找到mysql_connect函數,它將在php_mysql擴展中。 mysqlnd dll只提供了php_mysql和mysql IIRC之間的通信層。 – Hussain 2010-03-14 18:39:37