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で比較する、というご意見もいただきました。
————————————————-