みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPからMySQL5にアクセスできない

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.html
  php.iniのこの行もコメントアウトを外しています。
   extension=php_mysql.dll


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

投稿日時 - 2006-09-26 13:42:24

QNo.2432657

困ってます

質問者が選んだベストアンサー

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

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

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

投稿日時 - 2006-09-26 15:25:44

補足

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

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


==== 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:24

お礼

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

大変お騒がせしました。

投稿日時 - 2006-09-26 18:15:00

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)