解決PHP在DOS命令行下卻無法鏈接MySQL的技術(shù)筆記
更新時間:2010年12月29日 23:49:26 作者:
前段時間,由于要用 php 進行 Shell 編程時,碰到了 PHP 在 WEB 下可以連接 MySQL 而在 DOS COMMAND 命令行下卻連接失敗的問題。
正好今天朋友 xjb 也碰到了這個問題,所以寫了這篇筆記,將此問題的描述以及解決記錄下。
問題描述:用 web 方式, 可以鏈接 mysql, 但是在命令行下, 卻提示:
Fatal Error: undefined function mysql_connect()
環(huán)境: Windows 2003, PHP 5.2.0, MYSQL 5.0, Apache 2.0
在 php.ini 中, 已經(jīng)將 php_mysql.dll 的模塊選項給打開了;測試的腳本也很簡單,就一個 mysql_conect 函數(shù),內(nèi)容如下:
php.ini:
extension=php_mysql.dll
測試腳本 test.php 內(nèi)容如下:
text.php
<?
if ( !mysql_connect(DBHOST, DBUSER,DBPWD) )
{
echo "連接失敗!";
exit;
}
echo "連接成功!t";
?>
用 web 方式調(diào)用 http://localhost/test.php, 執(zhí)行正常, 顯示"連接成功".
但用 dos command 命令行的方式調(diào)用 d:/php/php.exe test.php 卻顯示連接失敗, 錯誤信息為: Fatal Error: undefined function mysql_connect()
很顯然, 在 dos command 命令行的環(huán)境下,mysql 的模塊沒有被調(diào)用。方法弄盡, 仍無法解決. 百思不得其解. 后來, 用寫了個腳本, 看看 php 的配置, 在兩個環(huán)境下有什么不同:
test.php
<?
echo phpinfo();
?>
仔細查看兩個環(huán)境下 phpinfo() 輸入的 php 配置信息,終于發(fā)現(xiàn)了問題所在:
Web 方式 http://localhost/test.php 方式調(diào)用時, 其 Configuration File (php.ini) Path 顯示為 C:WINDOWSphp.ini。
DOS COMMAND 命令行方式 d:/php/php.exe test.php 調(diào)用時, 其 Configuration File (php.ini) Path 為 d:phpphp.ini。
而在 c:windows 和 d:php 目錄下, 都存在一個 php.ini 文件,d:php 目錄下的 php.ini 沒有將 extension=php_mysql.dll 模塊打開.于是將 d:phpphp.ini 刪除,只保留 c:windowsphp.ini,問題解決.
總結(jié):在 windows 下安裝 php 時, 為了避免配置文件混亂,將安裝目錄下的 php.ini 復(fù)制到 windows 目錄下之后,應(yīng)該將原來安裝目錄下的 php.ini 文件重命名或刪除,以免造成在不同環(huán)境下執(zhí)行時,查找配置文件不一致的情況發(fā)生。問題發(fā)生的原因一般都是非常非常簡單,但查找、排除問題的過程,卻是相當?shù)臒┤恕?
問題描述:用 web 方式, 可以鏈接 mysql, 但是在命令行下, 卻提示:
Fatal Error: undefined function mysql_connect()
環(huán)境: Windows 2003, PHP 5.2.0, MYSQL 5.0, Apache 2.0
在 php.ini 中, 已經(jīng)將 php_mysql.dll 的模塊選項給打開了;測試的腳本也很簡單,就一個 mysql_conect 函數(shù),內(nèi)容如下:
復(fù)制代碼 代碼如下:
php.ini:
extension=php_mysql.dll
測試腳本 test.php 內(nèi)容如下:
text.php
<?
if ( !mysql_connect(DBHOST, DBUSER,DBPWD) )
{
echo "連接失敗!";
exit;
}
echo "連接成功!t";
?>
用 web 方式調(diào)用 http://localhost/test.php, 執(zhí)行正常, 顯示"連接成功".
但用 dos command 命令行的方式調(diào)用 d:/php/php.exe test.php 卻顯示連接失敗, 錯誤信息為: Fatal Error: undefined function mysql_connect()
很顯然, 在 dos command 命令行的環(huán)境下,mysql 的模塊沒有被調(diào)用。方法弄盡, 仍無法解決. 百思不得其解. 后來, 用寫了個腳本, 看看 php 的配置, 在兩個環(huán)境下有什么不同:
test.php
復(fù)制代碼 代碼如下:
<?
echo phpinfo();
?>
仔細查看兩個環(huán)境下 phpinfo() 輸入的 php 配置信息,終于發(fā)現(xiàn)了問題所在:
Web 方式 http://localhost/test.php 方式調(diào)用時, 其 Configuration File (php.ini) Path 顯示為 C:WINDOWSphp.ini。
DOS COMMAND 命令行方式 d:/php/php.exe test.php 調(diào)用時, 其 Configuration File (php.ini) Path 為 d:phpphp.ini。
而在 c:windows 和 d:php 目錄下, 都存在一個 php.ini 文件,d:php 目錄下的 php.ini 沒有將 extension=php_mysql.dll 模塊打開.于是將 d:phpphp.ini 刪除,只保留 c:windowsphp.ini,問題解決.
總結(jié):在 windows 下安裝 php 時, 為了避免配置文件混亂,將安裝目錄下的 php.ini 復(fù)制到 windows 目錄下之后,應(yīng)該將原來安裝目錄下的 php.ini 文件重命名或刪除,以免造成在不同環(huán)境下執(zhí)行時,查找配置文件不一致的情況發(fā)生。問題發(fā)生的原因一般都是非常非常簡單,但查找、排除問題的過程,卻是相當?shù)臒┤恕?
相關(guān)文章
php常用字符串String函數(shù)實例總結(jié)【轉(zhuǎn)換,替換,計算,截取,加密】
這篇文章主要介紹了php常用字符串String函數(shù),結(jié)合實例形式總結(jié)分析了php常用字符串函數(shù)的功能與使用技巧,包括字符串的轉(zhuǎn)換、替換、計算、截取、加密等各種常用操作相關(guān)函數(shù),需要的朋友可以參考下2016-12-12
php計劃任務(wù)之ignore_user_abort函數(shù)實現(xiàn)方法
這篇文章主要介紹了php計劃任務(wù)之ignore_user_abort函數(shù)實現(xiàn)方法,以實例形式分析了php計劃任務(wù)的ignore_user_abort函數(shù)實現(xiàn)方法,并對ignore_user_abort函數(shù)的用法進行了較為詳盡的分析說明,需要的朋友可以參考下2015-01-01
javascript,php獲取函數(shù)參數(shù)對象的代碼
javascript,php獲取函數(shù)參數(shù)對象的代碼,需要的朋友可以參考下。2011-02-02
php實現(xiàn)將Session寫入數(shù)據(jù)庫
這篇文章主要介紹了php實現(xiàn)將Session寫入數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下2015-07-07
PHP將HTML轉(zhuǎn)換成文本的實現(xiàn)代碼
這篇文章主要介紹了PHP將HTML轉(zhuǎn)換成文本的實現(xiàn)代碼,需要的朋友可以參考下2015-01-01

