簡體   English   中英

命令行PHP mysql_connect()錯誤

[英]Command Line PHP mysql_connect() Error

我正在從命令行運行php頁面,以在php exec命令完成后更新mysql db。 這一直工作正常。

但是,我剛剛重新安裝了服務器,現在當我在命令行上運行該腳本時,該腳本返回以下錯誤:

Fatal error: Call to undefined function mysql_connect() 

該腳本在瀏覽器中運行良好,這意味着mysql已安裝成功。 如何在PHP中啟用mysql以從命令行運行?

非常感謝。

首先,您可以使用

php -m

從命令行檢查是否啟用了擴展。

如果mysql不在列表中,則表示未啟用/加載-可能就是這種情況。


然后,您將要使用

php --ini

檢查哪個.ini文件被PHP讀取。


一旦找到了使用哪個php.ini文件,就必須對其進行編輯,並添加如下內容:

; configuration for php MySQL module
extension=mysql.so

加載mysql擴展。


根據您的發行版,每個擴展名可能是.ini文件(例如,Ubuntu會這樣做)

如果是這種情況,您還可以在其他文件旁邊創建一個新的.ini文件(例如mysql.ini ),並將我發布的兩行內容放入該新文件中。

檢查您的PHP可執行文件的路徑。 您沒有提到它在哪個操作系統下,但是,例如,在OSX下,僅運行php便會執行內置的PHP解釋器。 如果您使用的是MAMP,則需要運行/Applications/MAMP/bin/php5.2/bin/php (或任何路徑)以模仿瀏覽器中正在運行的內容。

相應地更改網絡服務器php的路徑(基於AMP安裝,操作系統等)。

對我來說,答案是將腳本中的第一行從“#!/ usr / bin / php”更改為“#!/ usr / bin / php -c /etc/php.ini”。

即使'php --ini'表示它正在處理正確的.ini文件,但事實並非如此,因此我不得不在腳本的標題行上強制使用它。

不久前,我遇到了類似的問題(也許對您來說是同樣的問題):

我在Apache的配置中指定了我喜歡的php.ini。 但是,這顯然不會影響CLI中的php。 檢查php使用了哪個php.iniphp --ini 修改它或通過更改其中一些來選擇其他配置文件:

在以下位置搜索php.ini(按順序):

  • SAPI模塊的特定位置(Apache 2中的PHPIniDir指令,CGI和CLI中的-c命令行選項,NSAPI中的php_ini參數,THTTPD中的PHP_INI_PATH環境變量)

  • PHPRC環境變量。 在PHP 5.2.0之前,在下面提到的注冊表項之后對此進行了檢查。

  • 從PHP 5.2.0開始,可以為不同版本的PHP設置php.ini文件的位置。 依次檢查以下注冊表項:[HKEY_LOCAL_MACHINE \\ SOFTWARE \\ PHP \\ xyz],[HKEY_LOCAL_MACHINE \\ SOFTWARE \\ PHP \\ xy]和[HKEY_LOCAL_MACHINE \\ SOFTWARE \\ PHP \\ x],其中x,y和z表示PHP專業語言,次要版本和發行版本。 如果這些鍵中有IniFilePath的值,則找到的第一個將用作php.ini的位置(僅Windows)。

  • [HKEY_LOCAL_MACHINE \\ SOFTWARE \\ PHP],IniFilePath的值(僅Windows)。

  • 當前工作目錄(CLI除外)

  • Web服務器的目錄(用於SAPI模塊)或PHP的目錄(否則在Windows中)

  • Windows目錄(C:\\ windows或C:\\ winnt)(對於Windows)或--with-config-file-path編譯時間選項

我剛剛將PHPRC環境變量修改為首選的php.ini位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM