たまたま私の友人の xjb も今日この問題に遭遇したので、問題の説明と解決策を記録するためにこのメモを書きました。
問題の説明: Web メソッドを使用すると、mysql に接続できますが、コマンド ラインでは次のプロンプトが表示されます:
致命的エラー: 未定義の関数 mysql_connect()
環境: Windows 2003、PHP 5.2.0、MYSQL 5.0、Apache 2.0
php.ini では、php_mysql.dll のモジュール オプションがオンになっています。テスト スクリプトも非常に単純で、mysql_conect 関数のみで、内容は次のとおりです:
コードをコピーします。 :
php.ini:
extension =php_mysql.dll
テストスクリプトtest.phpの内容は次のとおりです:
text.php
if ( !mysql_connect(DBHOST, DBUSER,DBPWD) )
{
echo "接続に失敗しました!";
終了;
echo "接続に成功しました!t";
Web モードを使用して http://localhost/test.php を呼び出します。 「接続が成功しました。」
ただし、 dos コマンドラインを使用して d: /php/php.exe test.php を呼び出すと、エラーメッセージは次のとおりです: Fatal Error: unknown function mysql_connect()
明らかに dos コマンド内です。 line 環境では、mysql モジュールは呼び出されません。すべての方法を試しましたが、それでも解決できませんでした。その後、php の設定と 2 つの環境の違いを確認するためのスクリプトを書きました。以下のように:
echo phpinfo();
2 つの環境で phpinfo() によって入力された php 設定情報を注意深く確認し、最終的に問題を発見しました。 // localhost/test.php を呼び出すと、その構成ファイル (php.ini) のパスが C:WINDOWSphp.ini として表示されます。 DOS COMMAND コマンド ライン モード d:/php/php.exe test.php が呼び出されるとき、その設定ファイル (php.ini) のパスは d:phpphp.ini です。 c:windows ディレクトリと d:php ディレクトリの両方に php.ini ファイルがありますが、d:php ディレクトリの php.ini では extension=php_mysql.dll モジュールが開きません。そこで、d:phpphp.iniを削除し、c:windowsphp.iniだけを残したところ、問題は解決しました。 要約: Windows に php をインストールする場合、設定ファイルの混乱を避けるために、インストール ディレクトリにある php.ini を Windows ディレクトリにコピーした後、元のインストール ディレクトリにある php.ini ファイルの名前を変更するか、削除する必要があります。異なる環境で実行すると、検索構成ファイルに不整合が発生する可能性があります。問題の原因は通常非常に単純ですが、問題を見つけてトラブルシューティングするプロセスは非常に面倒です。
http://www.bkjia.com/PHPjc/322737.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/322737.html
技術記事
たまたま私の友人の xjb も今日この問題に遭遇したので、問題の説明と解決策を記録するためにこのメモを書きました。 問題の説明: Web メソッドを使用すると、mysql に接続できますが...