• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLとApacheとの関係)

MySQLとApacheの関係を解説!データベースとの接続で問題が発生する原因とは?

このQ&Aのポイント
  • プログラミング初心者の方が、PHP5.2.9とMySQL5.1.34とApacheを使用してプログラミングを行っている際に、データベースとの接続ができない問題に直面しています。特に、データベースの内容をHTMLに表示させる処理において、アドレスを入力するとApacheが完全に停止してしまい、動作しなくなる現象が発生しています。
  • この問題の原因を特定するために、プログラムのコードや保存場所、MySQLやApacheの設定方法などを確認していく必要があります。エラーメッセージを詳しく調査し、特に以下の箇所に問題がある可能性があります。
  • - `$db = mysql_connect("$host", "$user", "$passwd");` の行でのエラー - プログラムの保存場所やMySQLの設定方法に関連する問題

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

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.3

> どこをどう確認すればよいかわからないのですがそこも教えていただけませんか エラーログの中に"PHP Warning"や"PHP Error"のような記述はありませんでしたか? もしなければ次はコマンドから直接PHPを実行する方法を試してみて下さい。 やり方はコマンドプロンプトで php "PHPファイル名" で実行できると思います。 何らかのエラーログがないと原因が特定できないので…お手数ですが色々試してみて下さい。 私の方でもその他、原因について調査してみます。

gjmptwajt0
質問者

補足

早速のご回答ありがとうございます. エラーログを見た結果,PHPWarningでしたらたくさんありました. 1つ文を引っ張ってきました. PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_pgsql.dll' - \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B\r\n in Unknown on line 0 どういう意味なのかわかりますでしょうか? 何度もご返答いただきまして誠にありがとうございます. 申し訳ありませんがよろしくお願いします.

その他の回答 (3)

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.4

> PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_pgsql.dll' ... これはPHPからPostgreSQL(DB)を使用するための拡張ライブラリ(dll)が読み込めていないという警告です。 これ自体、Apacheを落とす原因にはならないと思いますが…。 お手数ですが、参考URLにあるようにPHPのphp.iniファイルとApacheのhttpd.confが設定されているかご確認願えますか? #明確な回答ができなくて申し訳ないです。 #私自身、Linux上でApache + MySQL + PHPを使用しているのでWindows環境となるとちょっと…。

参考URL:
http://allabout.co.jp/internet/database/closeup/CU20040928A/
gjmptwajt0
質問者

お礼

返信ありがとうございます。 これからやってみます。

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

> ""をのぞいてみましたが変わりはありませんでした. そうですか…。 それでは下記の2点でエラーログが取れるか試してみて下さい。 [1つ目] ---------- $db = mysql_connect("$host", "$user", "$passwd"); if (!$db){ echo "データベースの接続でエラーが発生しました<BR>\n"; exit; } ---------- の箇所を ---------- $db = mysql_connect("$host", "$user", "$passwd"); echo mysql_error(); // 追加 if (!$db){ echo "データベースの接続でエラーが発生しました<BR>\n"; exit; } ---------- としてmysql_error()関数が実行されるか確認してみて下さい。 [2つ目] PHPで発生したエラーは基本的にApacheのエラーログに出力されます。 Apacheをインストールしたディレクトリ配下に "error.log" のような名前のファイルがあると思いますのでそれを確認してみて下さい。

gjmptwajt0
質問者

補足

ご返答ありがとうございます. 1つ目をやってみましたが,Apacheは停止してしまいました. 2つ目なんですがerror.logはあったんですが,どこをどう 確認すればよいかわからないのですがそこも教えていただけませんか

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

PHPの記述が間違っていますよ。 $host, $user, $passwdはそれぞれ変数なので、 $db = mysql_connect("$host", "$user", "$passwd"); の部分のダブルクォーテーションを除いて $db = mysql_connect($host, $user, $passwd); としてもう1度同じ現象が起きるか試してみて下さい。

gjmptwajt0
質問者

補足

ご回答ありがとうございます. ""をのぞいてみましたが変わりはありませんでした.