php pdo中bindParam() 和 bindValue()方法的区别方法 bindParam() 和 bindValue() 非常相似。 唯一的区别就是前者使用一个PHP变量绑定参数,而后者使用一个值。 所以使用bindParam是第二个参数只能用变量名,而不能用变量值,而bindValue至可以使用具体值。 01 | $stm = $pdo->prepare("select * from users where user = :user"); |
04 | $stm->bindParam(":user",$user); |
06 | //$stm->bindParam(":user","jack"); |
08 | $stm->bindValue(":user",$user); |
10 | $stm->bindValue(":user","jack"); |
另外在存储过程中,bindParam可以绑定为input/output变量,如下面: 1 | $stm = $pdo->prepare("call func(:param1)"); |
3 | $stm->bindParam(":param1",$param1); //正确 |
存储过程执行过后的结果可以直接反应到变量上。 对于那些内存中的大数据块参数,处于性能的考虑,应优先使用前者。 |