PHPのORマッパ Propel でブログを作る
スポンサーリンク
今回は、PHPのORマッパPropelを使って、ミニブログを作ってみます。
ログインとか、そういう処理は書きません。
とりあえず、フロントから渡されたデータをDBにつっこんだり、
取り出したりする部分にフォーカスしてます。
PHPのORマッパ Propel でPHPのクラスを生成するためには、3つのファイルが必要です。
記事一件ごとのデータは、下記のデータを持つことにします。
プロジェクトの名前
schema.xml
データベースのスキーマは、XML形式で記述します。
データベース名 miniblog
テーブル名 blog
idは、auto incrementされます。
create_atは、行を追加したときに、CURRENT_TIMESTAMPが自動的に挿入されます。
runtime-conf.xml
下記のソースだけで、DBにデータを書き込むことができます。
SQL文を一行も書く必要はありません。
データを読み出してみる。idが1のデータを読み出します。
***Peer::retrieveByPK(プライマリキー) を使うことで、
プライマリキーを指定して取得することができます。
カラムを指定して、でselectする方法
Criteriaクラスは、PropelのSQLをシンプルにする方法です。
user1さんのブログをDBからselectしてみます。
Propelを使うとこんな感じで、少しのPHPを書くだけで、DBの読み書きが簡単にできます。
ログインとか、そういう処理は書きません。
とりあえず、フロントから渡されたデータをDBにつっこんだり、
取り出したりする部分にフォーカスしてます。
PHPのORマッパ Propel でPHPのクラスを生成するためには、3つのファイルが必要です。
- schema.xml
- runtime-conf.xml
- build.properties
記事一件ごとのデータは、下記のデータを持つことにします。
- ユニークなID
- 投稿者
- 本文
- 投稿日時
プロジェクトの名前
propel.project=miniblog propel.database=mysql propel.database.user=root propel.database.password= propel.database.url=mysql:dbname=miniblog
schema.xml
データベースのスキーマは、XML形式で記述します。
データベース名 miniblog
テーブル名 blog
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <database name="miniblog" defaultIdMethod="native"> <table name="blog"> <column name="id" type="BIGINT" primaryKey="true" autoIncrement="true" /> <column name="uid" type="VARCHAR" size="150" required="true" /> <column name="body" type="VARCHAR" size="500" required="true" /> <column name="create_at" type="TIMESTAMP" defaultExpr="CURRENT_TIMESTAMP" /> </table> </database>
idは、auto incrementされます。
create_atは、行を追加したときに、CURRENT_TIMESTAMPが自動的に挿入されます。
runtime-conf.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <config> <log> <ident>propel-miniblog</ident> <level>7</level> </log> <propel> <datasources default="miniblog"> <datasource id="miniblog"> <adapter>mysql</adapter> <connection> <dsn>mysql:dbname=miniblog</dsn> <user>root</user> <password></password> </connection> </datasource> </datasources> </propel> </config>
mysqladmin create miniblog
クラスを生成し、MySQLにテーブルを作ります。
propel . propel . insert-sql
下記のソースだけで、DBにデータを書き込むことができます。
SQL文を一行も書く必要はありません。
<?php include 'propel/Propel.php'; set_include_path("/home/who/dev/propel/miniblog/build/classes" . PATH_SEPARATOR . get_include_path()); Propel::init('miniblog/build/conf/miniblog-conf.php'); include 'miniblog/build/classes/miniblog/Blog.php'; $blog = new Blog(); $blog->setUid('User1'); $blog->setBlog('blog message 1.'); $blog->save(); ?>
データを読み出してみる。idが1のデータを読み出します。
***Peer::retrieveByPK(プライマリキー) を使うことで、
プライマリキーを指定して取得することができます。
<?php include 'propel/Propel.php'; set_include_path("/home/who/dev/propel/miniblog/build/classes" . PATH_SEPARATOR . get_include_path()); Propel::init('miniblog/build/conf/miniblog-conf.php'); include 'miniblog/build/classes/miniblog/Blog.php'; include 'miniblog/build/classes/miniblog/BlogPeer.php'; $firstBlog = BlogPeer::retrieveByPK(1); echo $firstBlog->getId(), PHP_EOL; echo $firstBlog->getUid(), PHP_EOL; echo $firstBlog->getBlog(), PHP_EOL; ?>
カラムを指定して、でselectする方法
Criteriaクラスは、PropelのSQLをシンプルにする方法です。
user1さんのブログをDBからselectしてみます。
<?php include 'propel/Propel.php'; set_include_path("/usr/home/j/dev/propel/miniblog/build/classes" . PATH_SEPARATOR . get_include_path()); Propel::init('miniblog/build/conf/miniblog-conf.php'); include 'miniblog/build/classes/miniblog/Blog.php'; include 'miniblog/build/classes/miniblog/BlogPeer.php'; $c = new Criteria(); $c->add(BlogPeer::UID, 'user1'); $blogs = BlogPeer::doSelect($c); foreach ($blogs as $blog) { echo $blog->getId(), PHP_EOL; echo $blog->getUid(), PHP_EOL; echo $blog->getBlog(), PHP_EOL; echo PHP_EOL; } ?>
Propelを使うとこんな感じで、少しのPHPを書くだけで、DBの読み書きが簡単にできます。
参照しているページ (サイト内): [2008-03-19-2]
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12