アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpからMySQL5にアクセスできません。
以下のソースを実行すると、エラーが表示されます。

■=== phpのソース===========================================
<html>
<?php
if( !$mysql = mysql_connect("localhost","test_user","test_password") ){
print "接続失敗<br>";
exit();
}
?>
</html>
==============================================

■=== エラー =================================
Fatal error: Call to undefined function mysql_connect() in d:\HTTPRoot\temp\test.php on

line 3
==============================================

■環境
・PHP 5.1.6 ( Windows Binaries(PHP 5.1.6 zip package )をダウンロードし、c:\PHPへ解凍 )
・AnHTTPd1.42k
・Windows2000Professional sp4
・MySQL 5.0.19

■状況

・PHPとAnHTTPdは動作しています。
以下、<? phpinfo(); ?> の結果で、MySQLの部分です。

 Client API library version 5.0.22
 Client API header version 5.0.22
 MYSQLI_SOCKET /tmp/mysql.sock


・MySQLにはログインでき、DBやテーブルの作成もできます。
コマンドラインから、以下のコマンドでログインできます。
c:\>mysql -utest_user -ptest_password


・このサイトを参考に、php.iniなど設定しています。
http://homepage1.nifty.com/yito/anhttpd/faq/php5 …
  php.iniのこの行もコメントアウトを外しています。
   extension=php_mysql.dll


以上、宜しくお願いします。

A 回答 (1件)

モジュールがロードされてないんだと思います。


まずは、コマンドラインでの実行
C:\> php.exe -f test.php
と、Webサーバでの実行を比較してみてください。
コマンドラインでは、OKだが、
たまに、Webサーバでのみ、「関数が定義されてない」
というエラーが出ます。

このケースは、mysqlおよびmysqliモジュールが正常にロード
されなかった場合に発生します。

Apache2.2ではphp4apatch2_2.dllを使用しなければいけません。
同じように、ほかのサーバーでも、phpモジュールが駄目な場合が
あります。

この回答への補足

回答ありがとうございます。

コマンドラインでも、同じメッセージが出ます。


==== php -f test.phpの結果 ====
<html>
<br />
<b>Fatal error</b>: Call to undefined function mysql_connect() in <b>D:\HTTPRoo
t\temp\test.php</b> on line <b>3</b><br />
===============================


WindowsのサービスでMySQLは「開始」になっているので問題ないと思うのですが。すみません、あと何処を確認すればよいでしょうか。

補足日時:2006/09/26 16:38
    • good
    • 0
この回答へのお礼

すみません、解決しました。
php.iniが「\winnt\system32」と「\winnt」の2箇所にコピーしてしまってました。
「winnt\system32」のほうがpath指定で優先されていたようで、こちらを削除して解決しました。
ブラウザからも、コマンドラインからも動作するようになりました。

大変お騒がせしました。

お礼日時:2006/09/26 18:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!