Windows+Apache+PHP+MySQLによるWebアプリケーション
−入門編−

第6章 MySQLによるWebアプリケーションの基礎

6.2 PHPによるMySQL操作の基礎

■PHPファイルの漢字コード

 以上 の環境では、PHPファイルに漢字を使う場合は 「EUCコード」 である必要があります。一般にWindows環境では、エディターは漢字コードとしてSHIFT-JIS(SJIS)コードを使用しています。

(1) したがって、たとえばエディターソフトの「秀丸」を使う場合は、作成したPHPファイル等を保存する場合は、以下のように「EUCコード」に設定して保存する必要があります。「名前をつけて保存」ダイアログボックスの下の「文字コード」で「EUC(改行コード=LF)」を選択し、「保存」ボタンをクリックします。

(2)逆に、「EUCコード」で記述されたPHPファイル等をエディターで読み取る場合も、漢字コード指定を「EUCコード」に設定します。「ファイルを開く」ダイアログボックスの下の「文字コード」で「EUC」を選択し、「開く」ボタンをクリックします。

 

■データベースサーバへの接続

 PHPでMySQLで作成したデータベースにアクセスするには、まずデータベースサーバ(ホスト)に接続する必要があります。データベースサーバに接続するには、mysql_connect()関数を使います。

接続ID = mysql_connect(ホスト名,ユーザ名,パスワード)

 ここでは、ホスト名は「localhost」、ユーザ名は「webapl」、パスワードは「pass123」とします。PHPのソースコードの例を以下に示します。

$db_host = "localhost";
$db_user = "webapl";
$db_passwd = "pass1234";

$db = mysql_connect($db_host,$db_user,$db_passwd);

 戻り値$dbには、データベースへの接続IDが代入されます。この後は、この接続IDを参照してデータベースにアクセスします。

■データベースの選択

 次に、接続したデータベースサーバの中から利用するデータベースを選択します。データベースを選択するには、mysql_select_db()関数を使います。

mysql_select_db(データベース名、接続ID)

 ここでは、データベースとして「db_販売管理」を選択することとします。

$db_name = "db_販売管理";
mysql_select_db($db_name,$db);

 選択に成功すれば、戻り値はTRUE、失敗すればFALSEとなります。ここでは、戻り値を使わないステートメントとしています。


■SQL文の実行

 選択したデータベースに対してSQL文を実行するには、mysql_query()関数を実行します。

結果ID = mysql_query(SQL文,接続ID);

 ここでは、tbl_商品表テーブルからすべてのフィールドとすべてのレコードを表示するSQL文を実行します。

$str_sql = "select * from tbl_商品表";
$rs = mysql_query($str_sql,$db);

 戻り値には、SQL文の処理結果が格納されます。これを「結果ID」あるいは「結果セット」と呼びます。

■レコードの読み取り

 結果セットには現在のレコードを示すポインタがあります。最初は結果セットの第1レコードを示しています。現在のレコードのデータをフィールド名をキー値とする連想配列で読み出すには、mysql_fetch_assoc()関数を使います。while文と組み合わせることにより、結果セット内のレコードを順次読み出すことができます。

while(mysql_fetch_assoc(結果ID))
{
 各レコードごとの処理
}

 各レコードごとに、フィールド名とその値を表示するソースコードの例を以下に示します。


while($arr_item = mysql_fetch_assoc($rs))
{

  foreach($arr_item as $key => $value)
  {
    print "[{$key}] = {$value}<br>\n";
  }
  print "<br>\n";

}

■データベースサーバへの接続の切断

 データベースに対する処理がすべて終わったら、データベースサーバへの接続を切断します。

mysql_close(接続ID)

mysql_close($db);

■テーブルの表示例

 データベースサーバに接続し、一つのテーブル全体を参照し、ブラウザに表示するもっとも簡単なPHPスクリプト「connect.php」を以下に示します。内容は、上記の一連の処理を一つの流れとして、まとめて記述したものです。

「connect.php」

<html>
<head>
<title>connect.php</title>
</head>
<body>
<?php
 //データベースサーバ名の設定
 $db_host  = "localhost";

 //ユーザ名の設定
 $db_user  = "webapl";

 //パスワードの設定
 $db_passwd = "pass1234";

 //データベースサーバへの接続
 $db = mysql_connect($db_host,$db_user,$db_passwd);

 //データベース名の設定
 $db_name = "db_販売管理";

 //データベースの選択
 mysql_select_db($db_name,$db);

 //SQL文の設定
 $str_sql = "select * from tbl_商品表";

 //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>

 この「connect.php」ファイルをユーザ「test」のホームディレクトリである「c:\Apache2\users\test\public_html」のフォルダに保存します。

ブラウザを開き、URLに「http://localhost:8080/~test/connect.php」と記入しアクセスします。以下のようにデータベース「db_販売管理」の中のテーブル「tbl_商品表」のすべてのレコードのすべてのフィールド名と値が表示されます。

 

 


前へ | 目次へ |次へ  | YCポータルサイト

執筆 山田豊通
更新日: 2004年12月8日