SQL语句中文字前面的冒号是什么意思?

时间:2013-01-29 18:10:21

标签: php mysql yii

在变量之前使用“”是什么意思?

例如,此代码中的: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代码。

3 个答案:

答案 0 :(得分:8)

冒号是一个常见字符,表示SQL语句中变量值的占位符。在这种情况下,那些占位符在运行时被userIdproject_id的值替换。这对于避免SQL注入漏洞非常有用。

答案 1 :(得分:3)

:userId 是一个占位符

根据Yii的SQL statement文件:

  

对于使用命名占位符的预准备语句,这将是一个   表单的参数名称:name

答案 2 :(得分:0)

正如thaidiotguy所提到的那样,这是一个充满准备陈述的特征,特别是PDO。在PDO中,冒号告诉以下是命名参数。