• 締切済み

phpによるデータベース操作について(MySQL)

http://www.yc.tcu.ac.jp/~yamada/doc/mysql/win/0602.html のサイトを参考に以下のような「データベースの内容を表示させる」プログラムを書いたのですが、うまく表示されません。(webブラウザで確認したところまっさらなページで何も表示されません) ちなみに、私はレンタルサーバを借りており、その中で作成したデータベースにphpMyAdminにてテーブルやカラムの作成を行いました。以下のプログラムは「db_sample.php」という名前で保存(エンコード:utf-8)し、レンタルサーバーの公開しているフォルダ「httpdocs」にffftpにてアップロードしています。バージョンは、phpMyAdmin2.11.11.3と、php4.1?(最新の5.2よりひとつ前のもの) ここでは仮に ホスト名:aaa.com (←これは独自に作成したドメイン名でいいのかな?) ユーザー名:user パスワード:pass データベース名:db テーブル名:person とします。 ----------以下プログラム------------ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title></title> </head> <body> <?php //データベースサーバ名の設定 $db_host = "aaa.com"; //ユーザ名の設定 $db_user = "user"; //パスワードの設定 $db_passwd = "pass"; //データベースサーバへの接続 $db = mysql_connect($db_host,$db_user,$db_passwd); //データベース名の設定 $db_name = "db"; //データベースの選択 mysql_select_db($db_name,$db); //SQL文の設定 $str_sql = "select * from person"; //SQL文の実行 $rs = mysql_query($str_sql,$db); //結果セット内の各レコードを順次参照し、連想配列に代入 while($arr_item = mysql_fetch_assoc($rs)) { //レコード内の各フィールド名と値を順次参照 foreach($arr_item as $key => $value) { //フィールド名と値を表示 print "[{$key}] = {$value}<br>\n"; } print "<br>\n"; } //データベースサーバへの接続の切断 mysql_close($db); ?> </body> </html> ------------------------------------------ わかる方いらっしゃいましたらご教授願います。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

以下でデバッグしてみてください $link = mysql_connect($db_host,$db_user,$db_passwd) or die("connect error: " . mysql_error()); mysql_select_db($db_name); $rs = mysql_query($str_sql,$link) or die("query error: ".mysql_error()); while($arr_item = mysql_fetch_array($result,MYSQL_ASSOC))

回答No.2

ドキュメント宣言を取れば表示されると思います^^ これ取っちゃって下さい↓ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

y_era
質問者

補足

みなさんのご意見参考にさせていただきました!様々なご回答ありがとうございます。しかし、結局表示されませんでした;; また別の詳しいプログラムを書いてみたところ、実際に「mysqlへの接続」、「データベースの選択」、「クエリの送信」、「mysqlの切断」までは無事にできているようです(ホスト:aaa.comにて)。最後までエラーは表示されずに、TRUE(1)の値を返してくれました。テーブル内のデータ数も正確に取得できています。 そのプログラムを検証してみたところ、mysql_fetch_assoc関数の中身に問題がある($key, $value に代入されていない?)みたいです。 もしくはデータベースの設定にテーブルの中身に関するアクセス制限などの設定があるのでしょうか? SQLに関しては全くの初心者で申し訳ないです><

回答No.1

$db_host = "localhost"; に直せば問題は解決できると思いますよ。

y_era
質問者

補足

localhostではアクセスできませんでした;; 独自のドメイン名で接続からテーブルの読み込みまではできているのですが、肝心のテーブルの内容(カラム)が表示されません。 なにかご存知でしたらアドバイスお願いします!

関連するQ&A