プリペアステートメント

キットです。
ようやくPHP応用編が終わりました。
最近ちょっとサボり気味だったので今日は結構頑張りました。

ドットインストールで学んだことはPHPでもクラスは使えるってことと、prepareステートメントです。
このprepareステートメントjavaで使ったことあったのですんなり入ってきました。

prepareステートメントの説明はこちらに詳しく書いていただいてます。
PHP: プリペアドステートメントおよびストアドプロシージャ - Manual

アプリケーションで明示的にプリペアドステートメントを使用するように すれば、SQL インジェクションは決して発生しません (しかし、もし信頼できない入力をもとにクエリの他の部分を構築している のならば、その部分に対するリスクを負うことになります)。

prepareステートメントを使用すればSQLインジェクション攻撃の対策になるようです。

具体的な使い方として

$stmt = $dbh->prepare("insert into user (name,email,password) values(:name,:email,:password)");
$stmt->execute(array(":name"=>"n2","email"=>"e2","password"=>"p2"));

INSERTするときに値を:nameなどにしておいて、あとから":name"=>"n2"という書き方で"n2"という値に書き換えて、実行するイメージなのかな。
結果、name列には"n2"という値が入るというわけでした。

では、次回はcakePHPをやっていきます!