東京うぇ部

PHPをメインにしたプログラム情報共有サイト

CakePHP

CakePHPでプリペアドステートメント

CakePHPで複雑なSQLを組むときとかって、

直クエリを実行する事って多々あると思います。

$sql = '
	SELECT
		*
	FROM
		users
	WHERE
		status = \'1\'
		AND name = \'test\'
';

$this->Model->query($sql);

今回はほんとに簡単なクエリになりますが。。

ただ上記だとセキュリティ的によくありません。

例えば、

AND name = \'test\'

こちらの値を、webのformから取得した値をそのまま入れるとすれば

SQLインジェクションの被害にある恐れがあります。

そこでCakePHPでは以下のようにすればプリペアドステートメントを利用できます。

$sql = '
	SELECT
		*
	FROM
		users
	WHERE
		status = ?
		AND name = ?
';

$params = array($status, $test);

$this->Model->query($sql, $params);

簡単ですのでおすすめです。

ちなみにこちらCakePHP1.3での対応となります。

コメントを残す




このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事