第5回:ユーティリティメソッドの注意点 (2/2)

SQLiteの高度な活用術
SQLiteの高度な活用術

第5回:ユーティリティメソッドの注意点

著者:Peter Lavin   2006/4/25
前のページ  1  2
メタデータの利用

   メタデータを利用したメソッドは、実行時にフィールド名を取得することができます。これはテーブルに対応した値が配列のキーとして存在しているかどうかをチェックする場合に有効です。図2はデータベースに保存するデータをポストするためのフォームです。
データベースに保存するデータをポストするためのフォーム
図2:データベースに保存するデータをポストするためのフォーム

   図2のフォームは一般的なフォームで特に目新しいものではありませんが、それぞれのフィールドがデータベースのフィールドに対応する名前となっています。簡単にデータベースのフィールド名とのマッチングを行うことができるので、このフォームが送信された時に正しい名前と送信されているかどうかをチェックすることができます。

   リスト4のcleanData()メソッドはポスト配列のキー名がテーブルのフィールド名と合致するかをチェックし、問題があれば例外を投げます。このときmagic_quotesがオンになっていた場合はスラッシュを除くという処理も行っています。

   もしMySQLをmagic_quotesオンで使用している場合、エスケープしたデータは思いもよらないデータとなる可能性があります。しかし、MySQLとは異なりSQLiteではバックラッシュを使用して文字のエスケープを行わず、sqlite_escape_string()関数をかわりに使用します。

   オブジェクト指向のメソッドにはこの関数にあたるものはありません。フィールド名とフォームが合致していない場合など、cleanData()メソッドのようなものを使用してチェックを行う必要はありませんが、簡単にフォームからフィールドに情報を移すことができます。

前のページ  1  2


Peter Lavin
著者プロフィール
Peter Lavin
カナダ、トロントでWebデザイナ/Web開発者として働いています。現在、PHPのオブジェクト指向をテーマにした本を執筆しており、No Starch Press社より出版される予定です。


INDEX
第5回:ユーティリティメソッドの注意点
  ユーティリティメソッド
メタデータの利用
SQLiteの高度な活用術
第1回 画面レベルのテストを自動化して効率化をはかろう
第2回 最小限の労力で最大限の効果を得る技
第3回 例外処理の注意点
第4回 SQLiteDatabaseの拡張のメソッドの紹介
第5回 ユーティリティメソッドの注意点
第6回 ユーザ定義関数のまとめ

人気記事トップ10

人気記事ランキングをもっと見る