pdo中bindParam()与bindValue的区别


2012-07-03  ConfiJin  文章来源  阅 2491  转 2

php pdo中bindParam() 和 bindValue()方法的区别

方法 bindParam() 和 bindValue() 非常相似。
唯一的区别就是前者使用一个PHP变量绑定参数,而后者使用一个值。

所以使用bindParam是第二个参数只能用变量名,而不能用变量值,而bindValue至可以使用具体值。

01$stm $pdo->prepare("select * from users where user = :user");
02$user "jack";
03//正确
04$stm->bindParam(":user",$user);
05//错误
06//$stm->bindParam(":user","jack");
07//正确
08$stm->bindValue(":user",$user);
09//正确
10$stm->bindValue(":user","jack");

另外在存储过程中,bindParam可以绑定为input/output变量,如下面:

1$stm $pdo->prepare("call func(:param1)");
2$param1 "abcd";
3$stm->bindParam(":param1",$param1); //正确
4$stm->execute();

存储过程执行过后的结果可以直接反应到变量上。

对于那些内存中的大数据块参数,处于性能的考虑,应优先使用前者。

posted @ 2016-05-17 12:08  夜深人静123  阅读(275)  评论(0编辑  收藏  举报