2013-01-29 10 views
5

変数の前に ""を使用するとはどういう意味ですか?例えばSQL文のリテラルの前にコロンは何を意味しますか?

、このコードで:userId

public function removeUser($userId) 
{ 
$command = Yii::app()->db->createCommand(); 
$command->delete(
'tbl_project_user_assignment', 
'user_id=:userId AND project_id=:projectId', 
array(':userId'=>$userId,':projectId'=>$this->id)); 
} 

これはPHP、YiiのフレームワークにおけるMySQLのコードです。

+2

これは、プリペアドステートメントのバインド変数を示します。 – datasage

+0

ありがとうございます。あなたの答えは助けになりました。 –

答えて

6

コロンは、SQL文の変数値のプレースホルダを示す一般的な文字です。この場合、プレースホルダは実行時にuserIdproject_idの値に置き換えられます。これは、SQLインジェクションの脆弱性を回避するのに最適です。

+0

ありがとう。とても便利です。 –

0

thaidototyが言及しているように、それは特にPDOでのプリペアドステートメントで使用されるキャラクターです。 PDOでは、コロンは以下が名前付きパラメータであることを示します。

3

:userIdをSQL statementためのYiiのマニュアルによると、プレースホルダ

です:NAME:

という名前のプレースホルダを使用してプリペアドステートメントの場合、これはフォームの パラメータ名になります。

+0

それは役に立ちます。ありがとう –

関連する問題