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 ); //正确 |
存储过程执行过后的结果可以直接反应到变量上。 对于那些内存中的大数据块参数,处于性能的考虑,应优先使用前者。 |