作者:上村崇 フリーランスのIT系エンジニア
twitter:@uemera facebook:uemura

【連載】Webサービス制作日記#09 CakePHPのデータベースアクセスは便利


CakePHPは、PHPの開発でよく使う機能や方法論をフレームワークという形であらかじめ用意してくれていますので、1からPHPでコードを書く必要が無いことが多いです。
データベースへのアクセスは通常はSQLを使いますが、CakePHPを使うとSQLを使わなくてもデータベースの参照や更新ができてしまいます。
僕がとりわけ感動したのは、リレーションの関係になっている2つのテーブルの更新にも対応していることです。
正しく配列に値を入れておけば、その配列を渡すだけで2つのテーブルの更新を同時に行なってくれます。
 
たとえばこんな2つのテーブルがあって、1:nの関係があるとします。
 
201010312010.jpg
 
これらのテーブルに値を入れるには、テーブルを模した以下のような構造の配列(arrayAとします)を作って、saveAll関数に渡すだけです。
 
[php]
Array
(
[Crawlkeyword] => Array
(
[user_id] => 18
[keywordlist_id] => 23
[Callnum] => 4
[Rallnum] => 8
)

[Crawldomain] => Array
(
[0] => Array
(
[domainlist_id] => 201
[Cpos] => 0
[Rpos] => 7
)

[1] => Array
(
[domainlist_id] => 202
[Cpos] => 0
[Rpos] => 0
)

・・・
[/php]
 
saveAll関数でデータベースにInsertできます。もし既に同じデータがテーブルに存在する場合はInsertではなくUpdateしてくれます。
[php]
$this->Crawlkeyword->saveAll($arrayA);
[/php]
 
書かないといけないコードは実はこれらだけではなくて、データベースコネクトのための設定や、モデルとよばれるクラスの実装など、考慮しないといけない点はいくつかありますが、それらの下準備をしておきさえすれば、実際のDBアクセスは驚くほど簡潔です。
 
CakePHPによるデータベースのアクセス方法は、このページを大いに参考にさせてもらいました。
分かりやすいのでおすすめです。
 
【libro】 初心者のためのCakePHPプログラミング入門
http://libro99.appspot.com/index2?id=8002
 
 
 
過去のエントリ
【連載】Webサービス制作日記#08 グラフ描画ツールを使う
【連載】Webサービス制作日記#07 cronでスケジュール実行
【連載】Webサービス制作日記#06 jQueryでAjaxする
【連載】Webサービス制作日記#05 HTMLパーサを使う
【連載】Webサービス制作日記#04 データベースを使う
【連載】Webサービス制作日記#03 プラットフォームを決める
【連載】Webサービス制作日記#02 要件を決める
【連載】Webサービス制作日記#01 何を作ろうとしているか

関連記事


【連載】Webサービス制作日記#08 グラフ描画ツールを使う
グラフ描画ツールとして、jqPlotを使うことにします。 jqPlotは、jQueryのプラグインとして動作します。     javascriptのグラフ描画ツールは最近かなり充実してきている感じがします。jQueryは …

【連載】Webサービス制作日記#07 cronでスケジュール実行
スポンサードサーチ検索ツールには、リアルタイムに検索できる機能だけではなくて、過去のデータを遡って表示したり時系列グラフ表示する機能をつけます。 そのためには、過去の順位情報を残しておかなければなりません。 毎日定期的に …

【連載】Webサービス制作日記#06 jQueryでAjaxする
スポンサードサーチ検索ツールは、一度に複数の検索を実行出来るようにしています。 ユーザがあらかじめ設定しておいた複数のキーワードごとに、一度に検索を実行して現在順位をYahooからとってきて一度に表示します。 しかしここ …

【連載】Webサービス制作日記#05 HTMLパーサを使う
順位検索ツールの処理フロー スポンサードサーチ順位検索ツールは、以下のようなデータのやりとりをすることになります。     ユーザからのリクエストをWebサーバで受けたら、それをトリガにしてYahooに検索に行きます。 …

【連載】Webサービス制作日記#03 プラットフォームを決める
どのツールを使って作るかを決めます。 一度使うと決めたツールは、あとから変えたいと思ってもなかなか変えられないことが多いので、ここはよく考える必要があります。   どの言語を使うか? プラットフォームは? 例えばプログラ …

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です