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 语句中变量值的占位符。在这种情况下,这些占位符将在运行时被userIdand的值替换。project_id这对于避免 SQL 注入漏洞非常有用。

于 2013-01-29T18:11:17.687 回答
3

:userId是占位符

根据 Yii 的SQL 语句文档:

对于使用命名占位符的预处理语句,这将是:name形式的参数名称。

于 2013-01-29T18:41:18.427 回答
0

正如 thaidiotguy 提到的,这是一个通常用于准备好的语句的字符,尤其是 PDO。在 PDO 中,冒号表示以下是命名参数。

于 2013-01-29T18:39:12.080 回答