7

変数の前に「 」を使用するとはどういう意味ですか?

たとえば、: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));
}

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

4

3 に答える 3

9

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

于 2013-01-29T18:11:17.687 に答える
3

:userIdはプレースホルダーです

SQLステートメントに関するYiiのドキュメントによると:

名前付きプレースホルダーを使用するプリペアドステートメントの場合、これは:nameの形式のパラメーター名になります。

于 2013-01-29T18:41:18.427 に答える
0

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

于 2013-01-29T18:39:12.080 に答える