ホームページ  >  記事  >  php教程  >  php pdo中bindParam() 和 bindValue()方法的区别

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

WBOY
WBOYオリジナル
2016-06-06 19:44:491116ブラウズ

方法 bindParam() 和 bindValue() 非常相。 唯一的区别就是前者使用一个PHP变量绑定参数,而后者使用一个。 所以使用bindParam是第二个参数只能用变量名,而不能用变量,而bindValue至可以使用具体。 $stm = $pdo-prepare(select * from users where user =

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

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

$stm = $pdo->prepare("select * from users where user = :user");
$user = "jack";
//正确
$stm->bindParam(":user",$user);
//错误
//$stm->bindParam(":user","jack");
//正确
$stm->bindValue(":user",$user);
//正确
$stm->bindValue(":user","jack");

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

$stm = $pdo->prepare("call func(:param1)");
$param1 = "abcd";
$stm->bindParam(":param1",$param1); //正确
$stm->execute();
存储过程执行过后的结果可以直接反应到变量上。

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

via http://anfirst.cn/archives/1030


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。