请问bindParam里那冒号可不可以不要

请问bindParam里那冒号可不可以不要

$command=$db->createCommand("SELECT * FROM T WHERE username=:username")

1.$command->bindParam(‘username’,$username);

2.$command->bindParam(’:username’,$username);

1和2两种方式好像都可以的

那是用来搜索代换字符串之用,理论上是可以去掉的,不过加上可以避免替换冲突.当然你也可以用问号来代替

我觉得那样做挺麻烦,我喜欢这样用:




$result = Yii::app()->db->createCommand("SELECT * FROM t WHERE username=:username")->queryRow(true,array(':username' => $username) );



$sql = “SELECT * FROM t WHERE username=’$username’”;

$result = Yii::app()->db->createCommand($sql)->query();

我一般这样写

巡洋艦,你这样写的话不是不行,不过用bindParam的话可以避免一下mysql crack

$sql = “SELECT * FROM t WHERE username=’$username’”;

我以前也是这样写,PDO学习时代养成的习惯,后来偏向更多的安全方面,就这样写了

$command=$db->createCommand("SELECT * FROM T WHERE username=:username")

1.$command->bindParam(‘username’,$username);