デジットさんの生活便利サイトトップへ デジットさんのPEARでMySQL表示(PHP)

トップページ > ホームページ作成 > PEARでMySQL表示

PEARのDBクラス(MDB2)を利用して、データベースに接続しデータを取得し表示する方法です。MySQL以外のデータベースにも汎用で使えますので、便利です。autoExecuteの使い方も説明しました。

PEARのDBクラス(MDB2)をつかってデータベースからデータを取得する

MySQL接続で説明した「確認画面」"test_regist.php"を変更したPEARでMySQL接続の続きです。 ここでも、便利な?、「autoExecute()」 を使用してデータ読んでみます。「autoExecute()」のパラメータとデフォルト値([ ]の中)は次のとおりです。

autoExecute( string $table, array $fields_values, [int $mode = MDB2_AUTOQUERY_INSERT], [string $where = false], [array $types = null], [string $result_class = true], [mixed $result_types = MDB2_PREPARE_MANIP])

  1. string $table → テーブルの名前
  2. array $fields_values → フィールドに書き込む値(INSERT時)
  3. int $mode → MDB2_AUTOQUERY_INSERT / MDB2_AUTOQUERY_UPDATE / MDB2_AUTOQUERY_DELETE / MDB2_AUTOQUERY_SELECTのどれかのモードを指定します。
  4. string $where → テーブルを呼んだ人
     (指定した場合は、呼んだ人のデータのみ取得するようです。UPDATEとDELETEの場合は、指定する必要があります。)
  5. array $types → フィールドのタイプです。
     (array指定せず全て取得する場合は「true」を設定します。)
  6. string $result_class → which specifies which result class to useだそうです。

MDB2を使ったMySQLからデータを取得し表示する例

データベースに接続する方法は、PEARでMySQL接続と同じです。「autoExecute()」で取り出したデータを、表にしてみました。<?php ?>は、次のように分割しても大丈夫です。
データは、「fetchRow()」行がなくなるまで繰り返し取得します。パラメータを指定しない場合のデフォルトは「MDB2_FETCHMODE_ORDERED」で、数値添字配列 (カラム番号をキーとする)になります。この例の様に、連想配列 (カラム名をキーとする「$row[0]」等の指定) にしたい場合は、「MDB2_FETCHMODE_ASSOC」をパラメータにします。 オブジェクト (カラム名をプロパティとする)も、「MDB2_FETCHMODE_OBJECT」で指定できます。

<?php
//PEAR DBクラスモジュール(MDB2)をインクルード
require_once("MDB2.php");
//接続の設定(DBタイプ/サーバー/データベース/ユーザー/パスワード/テーブル)
$db_type = "mysql";//データベースの種類
$sv = "mysql**.lolipop.jp";//自分のサーバー名に書き換える
$db_name = "LA********";//自分のデータベース名に書き換える
$user = "LA********";//自分のIDに書き換える
$pass_w = "PW*****";//自分のパスワードに書き換える
$table = "db****";//使うテーブル名に書き換える

//データベースに接続
$dsn = "$db_type://$user:$pass_w@$sv/$db_name";
$mdb2 =& MDB2::factory($dsn);
if (PEAR::isError($mdb2)){
die($mdb2->getMessage());//"接続エラー"
}

//データを取り出す
$result_types = true ;//配列を指定しないですべてのフィールドを取得('*' を使用)
$mdb2->loadModule('Extended');//autoPrepare() および autoExecute() を使用
$res = $mdb2 -> extended-> autoExecute($table,null,MDB2_AUTOQUERY_SELECT,false,null,true,$result_types);
if (PEAR::isError($res)){
die($res->getMessage());//"接続エラー"
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>データベース表示(サンプル)</title>
</head>
<body>
<table border="1">
<tr>
<td>名前</td><td>英語</td><td>E-mail</td><td>コメント</td>
</tr>
<?php
//一行づつ行がなくなるまで取得 コールのたびにフェッチモードを設定
while ($row = $res->fetchRow(MDB2_FETCHMODE_ASSOC)){
echo "<tr>";
echo "<td>" .$row["name"]. "</td>";
echo "<td>" .$row["ename"]. "</td>";
echo "<td>" .$row["email"]. "</td>";
echo "<td>" .$row["comment"]. "</td>";
echo "</tr>";
}
?>
</table>
<?php
//切断
$mdb2 -> disconnect();
?>
</body>
</html>

これで、PEARのMDB2をつかってMySQLからのデータ取得と表示が出来ました。
レンタルサーバーの「ロリポップ」で動作確認できています。

読取ったデータを表で表示した結果

MySQLデータを表示 上のサンプルリストを実行した、結果の例です。
MySQLのデータが順番に取得され、結果を表にして表示しました。

ホームページを公開するレンタルサーバーは、 ロリポップ! がお薦め、 PHP5を使うならPHP5から選ぼう。

関連ページ

ホームページ作成

PHP5を使う

アフィリエイトをする

PHPの使い方

デジットさんのホームページ入門に移行中

スポンサード リンク

Amazon.co.jpアソシエイト:
PHP&プログラミング

売れている順 新刊順

:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_  :5

とことん!ホームページホームページ入門役立つサイトデジットさんのリストラ日記仮福真琴の精神科医はうそだらけ

2005-2010 Copyright © Digit-01 All Rights Reserved.