EasyChen
2016-01-27 11:57
使用bindParam()方法和使用excute(array())有什么区别?
使用bindParam()
$stmt->bindParam(":usernma",$username); $stmt->bindParam(":password",$password);
使用execture()
$stmt->execute(array(":username"=>$username,":password"=>$password));
前面的占位符都是一样的。那么这两者有什么区别?
execute() 传参或 bindValue() 是绑定常量到参数;bindParam() 是绑定变量到参数。
相比之下,绑定变量更加灵活。
bindParam()使得代码更加健壮一些,试想一下如果要是执行一个很多的参数的array,举个例子,项目初始的时候,只有5个参数,但是扩展业务的时候,需要扩展更多的参数,那你代码重构的时候需要在array()里面添加一堆的参数,这样会使得代码的可读性变的很差,无论是用于今后的重构,还是扩展业务,都是不利的。而使用bindParam()之后,代码直观,可用性也很高,不用的那一行,完全可以在前面 // ,代码调试也很好。
以上是以软件工程角度出发的个人想法
PDO—数据库抽象层
30043 学习 · 396 问题
相似问题