2007年 8月 の投稿一覧

PHP Object Generatorのデータベースオブジェクトを使ってみる

お勉強がてらにPHP Object Generatorを使ってみた。そのときのメモ。読みにくいのはご愛嬌。
手順は以下の通り。

1. PHP Objct generator(http://www.phpobjectgenerator.com/)のページでDBオブジェクトの設定をする。
以下の様な内容で設定してみた。

  • テーブルの名前
    • userlist
  • DBの項目
    • NAME = VARCHAR(255)
    • AGE = INT
    • MAILADRS = VARCHAR(255)

設定を入力した際の画面は下の様な感じ。

f:id:hideack:20070805014754p:image

2. オブジェクト一式がzipに固められダウンロードできるのでダウンロードする。

3. ダウンロードしたパッケージを解凍する
解凍すると中身は以下の様な内容になっている。

  • configuration.php (DBに接続するためのパラメータ設定)
  • objectsディレクトリ
    • データベースオブジェクトが入っている模様
  • pluginsディレクトリ
  • setupディレクトリ
    • webサーバの公開領域に置いた際にブラウザから設定やテストができる模様

4. configuration.phpを設定する
おそらく目を通せば、そのままなのでわかると思う。
一部を示すと以下の様な形。そのまんま。

<?php
// edit the information below to match your database settings
$configuration['db']	= 'test';       // database name
$configuration['host']	= 'localhost';	// database host
// (以下続く)
?>

5. DBに実際にテーブルを用意する。
自分自身が手探り状態なので、とりあえず直接MySQLを操作して作る事にした。
で、ここで objects/class.userlist.php を見てみると、自動生成されたソースコードの上部のコメントに以下の様な内容が書かれている。

This SQL query will create the table to store your object.
CREATE TABLE `userlist` (
`userlistid` int(11) NOT NULL auto_increment,
`name` VARCHAR(255) NOT NULL,
`age` INT NOT NULL,
`mailadrs` VARCHAR(255) NOT NULL, PRIMARY KEY  (`userlistid`)) ENGINE=MyISAM;

最初の設定では、name, age, mailadrsの3列分の情報しか定義しなかったのだけど、Php Object Generatorはuserlistidというカウンタ値を付けて、それをprimary keyとして管理するということになっている模様。
なので、上記の定義をそのまま利用してMySQLにテーブルを作成する。

% mysql -u test -ptest
mysql> use test;
Database changed
mysql> CREATE TABLE `userlist` (`userlistid` int(11) NOT NULL auto_increment,`name` VARCHAR(255) NOT NULL,`age` INT NOT NULL,`mailadrs` VARCHAR(255) NOT NULL, PRIMARY KEY  (`userlistid`)) ENGINE=MyISAM;
Query OK, 0 rows affected (0.04 sec)

うむ。無事に出来た。

6. POGのDBオブジェクト経由でデータを書いてみる。
破竹の勢いで自動生成されたソースコードに目を通す。こんな感じで操作するとデーターベースに登録されそうだな。と、目星をつけて書いてみる。

<?php
require_once("configuration.php");
require_once("objects/class.database.php");
require_once("objects/class.userlist.php");
$db = new USERLIST("taro yamada", 30, "taro@hoge.com");
$response = $db->Save();
print "RESPONSE CODE=".$response."\n";
?>

これを実行してみると、

%php -q test.php
RESPONSE CODE=1

となる。ここで返却される数値はデータベースのテーブルのprimary keyとなっている項目(ここでは、userlistidという名前の列)の値であるので、書き込めたに違いないということで、MySQL経由で実際にテーブルを見てみる。

mysql> SELECT * FROM USERLIST;
+------------+-------------+-----+---------------+
| userlistid | name        | age | mailadrs      |
+------------+-------------+-----+---------------+
|          1 | taro yamada |  30 | taro@hoge.com |
+------------+-------------+-----+---------------+
1 row in set (0.01 sec)

おぉ、書けている!!
と、ここまでいった時点で久しぶりの夜更かし状態でかなり眠くなってきたので続きはまた明日。

<蛇足>
この使い方が正しい使い方なのか大きく謎ですので、その点はご了承ください。

蝉の声

今の時間でも蝉の声が激しいですねぇ…。熱帯夜だ。

ということで、買い物からそのままお食事に流れる。
なんか、妙な話もした気がするけど、まぁ、それはそれで。ということで。

…のお供。

自分が買い物をしたのではなく、april師の買い物のお供。
夕方からの外出であったがとても暑かった。
買い物の品は、当初ビデオカードのはずだったのだが、パソコン本体に大幅に方向転換され無事お買い上げされた。買い方が斬新。
でも、非常によい買い物だったのではないでしょうか。Core2Duo万歳。
あと、買い物中に「マックの場所はどこだろう」という話が出たときに、

  • april師 = 一休憩するためのマクドナルドの場所
  • 私 = ヨドバシカメラAkibaのMac販売コーナー

という、凄くお約束な勘違いをお互い本気でしてたりした。*1

*1:この話だけ聞くと、またご冗談を。と思われるかもしれないが、本当にやってしまったので、どっと笑い。

@新橋

仕事で都心近辺に行ったので夕食を新橋で。いわゆるガード下ってやつですな。*1
串揚げのお店でビール飲んで2000円ぐらいであった。安くて美味しくて幸せであった。
野菜全然食べなかったのがナニでしたが。
あ、最後に食べたバナナの串揚げはかなり強烈なインパクト…。

帰りも東京経由で帰ったので、確実に椅子に座れて楽々。途中で寝てしまいましたが、寝過ごさなかったのでよしとする。

*1:ただのミーハーである

本日スープ失敗

クリーニング屋は失敗だったかが、折角なので晩ご飯にラーメンを食べに行こうかと家の近所のラーメン屋に向かったところ、張り紙が。

本日、スープ失敗のため、夜の営業はお休みします。
                  店主

なんで、また今日に限って失敗しますかな…。
ついてない。

本日定休日

クリーニング屋が21時まで開いているのでとりに行こうとしたら本日は定休日だった。
ついてない。

阿久悠さん死去のニュースが。
勝手にしやがれ」とか代表作ですよね。ご冥福をお祈りします。

勝手にしやがれ。原曲も好きですが、カバーも好きです。