第4回PHP懇親会発表のフォローアップ

PHP懇親会での私の発表へのご意見と
私の考えを入れたフォローアップを掲載いたします。

発表資料を含んだ記事はこちら

————————————————–
■Oracle
postgreSQLのようなpg_escape_string()が無い中
どのような方法を使っていますか?

・(私が発表したbindを使うことに加えて)
バリデーションをすること。
→入力値であれば、想定値があると思うので
チェックして、どこがおかしいのか画面に表示する。
たとえば、郵便番号なら数字とハイフン以外NGで
間違って全角を使っていたら画面に表示することで
ユーザもどこを修正したらよいか分かる。
・PDOライブラリを使う。
→PDOとは PHP Data Object の略。
PHP 5.1から実装された、
新しいデータベース抽象化のためのクラス。
各データベースに対して固有のPDOドライバを用意することで、
共通のAPIを用いたデータアクセスを可能にしつつ、
ネイティブドライバに近い高速な処理を実現している。
http://www.weblio.jp/content/PDO より

PDOでは主要なDBが使えるので、組み込まれている関数を使えば
割と簡易にSQLインジェクション対策ができそうです。

PHPマニュアルにも解説がありますね。
————————————————–
■フレームワークのよさは?

・フォームの入力チェックなど良く使う処理が
簡易に書ける。pg_escape_string()などの処理も
ミスや漏れが無く、全てに適用できる。
・学習期間は必要だが、2回目以降に生きてくる。
→初期投資と考えれば、
フレームワークに限ったことではありませんね。

・Cake PHPについて、動画が公開されています。
Cake PHP ハンズオン
私も時間を見つけて少しずつ見ています。
————————————————–
■フラグの型は何型?
例:削除フラグ 1は数字型?文字型?

・TINYINT これはINTとは違う。
CHAR型と幅は同じ。C言語的な発想。メモリの節約になる。

[TINYINT]1バイト、-128~127
[INT]4バイト、-2147483648~2147483647

参考
int(1)とtinyintについて

tinyint

————————————————–
■変数の命名について

・少なくとも自分の中では、方法を統一しておくべき。
・変数名は、DBのカラム名にあわせたほうが良い。

まずは自分なりのポリシーを持つことですね。
メンバで開発する場合は、お互いに話し合って
規約を統一することも必要になると思います。

代表的なものに
ハンガリアン記法
また、Pearのドキュメントにコーディング規約もあります。
ここの第4章内が命名規約

これらの多くの方が見ていると思うのもを参考に
自分なりの方法にアレンジしていくのが良さそう。
————————————————–
■エラー判定、変数比較

戻り値からエラーかどうか判定する手法ですが
あくまで処理で何が戻ってくるか、によりますね。

true or false と決まっているなら
falseをエラーにすればよい。

厄介なのは、数字が戻る可能性があったら
0は正なのか?
その辺を踏まえたうえで
emptyで比較する、というご意見もいただきました。
————————————————-

Comments are closed.