ラベル PDO の投稿を表示しています。 すべての投稿を表示
ラベル PDO の投稿を表示しています。 すべての投稿を表示

2009/12/09

データベースを使うPHPプログラム (2)PDOを使ったPHPプログラムを書く


データベースを使うPHPプログラム (1)からの続き



前回の手順で下のようなテーブルがデータベース内に作成できました。

messagesテーブルに登録したデータ
id
項目番号
message
メッセージ
1やあ。
2DBのメッセージ
3へい!へい!


今回はこのテーブルからデータを取得して表示するPHPプログラムを作成します。


1.PHPプログラムの作成

下のようなPHPのコードを入力します。

<?php

$dbName = 'php_db'; // データベース名
$dbUser = 'php_db'; // ユーザ名
$dbPass = 'php_db'; // パスワード

// データベースへ接続する
try{
 // MySQLへ接続
 $pdo = new PDO(
  'mysql:host=localhost; dbname='.$dbName,
  $dbUser,
  $dbPass,
  array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET utf8;')
 );
}
catch(PDOException $e){
 // エラー
 print 'error!<BR />';
 die;
}

// データベースからデータを取得
$query = $pdo->prepare('select * from messages'); // データ取得のSQL文
if( !$query->execute() ){ // SQL文を実行
 // エラー
 print 'execute error!<BR />';
 die;
}

// データベースから取得したデータを表示
while( $row = $query->fetch(PDO::FETCH_OBJ) ){ //データベースから
 print $row->id . ':'; // idフィールドの内容を表示
 print $row->message . '<BR />'; // messageフィールドの内容を表示
}

?>



2009/12/03

データベースを使うPHPプログラム (1)データベース(MySQL)の準備

XAMPPで作ったPHPの開発環境で、データベースを使うプログラムを作ります。



データベースについて


XMAPPにはMySQLというデータベースが含まれています。
まずは、MySQLのデータベースがどのようにデータを格納しているかを説明します。


データベースは複数の要素をテーブルと言う単位でひとまとめにして管理しています。
フィールドというのが実際にデータ1つ1つが登録されている場所です。




データベースの構造

MySQLデータベースサーバ
    |
     +-データベース
            |
            +テーブル
            |     |
            |     +-フィールド
            |     +-フィールド
            |
            +テーブル
                  |
                  +-フィールド
                  +-フィールド



抽象的すぎて分かりづらいので、ブログのデータを保存しているデータベースを例に同じような図にすると下のような感じです。
データの種類ごとにテーブルがあり、テーブル内のフィールドにデータが保存されているのがわかると思います。

ブログデータベース


データベースサーバ
    |
     +-ブログデータベース
            |
            +ブログ記事テーブル
            |     |
            |     +-記事タイトルフィールド
            |     +-記事内容フィールド
            |
            +ブログコメントテーブル
                  |
                  +-コメント投稿者名フィールド
                  +-コメント内容フィールド





今回は、下のようなデータベースからメッセージを取り出して表示するだけの単純なプログラムを作ってみます。


今回作るプログラム用のデータベース

MySQLサーバ
    |
     +-データベース
            |
            +メッセージテーブル
                  |
                  +-項目番号フィールド
                  +-表示メッセージフィールド