使用bindParam()方法和使用excute(array())有什么区别?

来源:3-3 [PDO] bindParam()方法绑定参数

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));

前面的占位符都是一样的。那么这两者有什么区别?

写回答 关注

2回答

  • hen_nam
    2019-03-11 01:10:03

    execute() 传参或 bindValue() 是绑定常量到参数;bindParam() 是绑定变量到参数。

    相比之下,绑定变量更加灵活。

  • 下雨看世界
    2016-02-01 16:11:07

    bindParam()使得代码更加健壮一些,试想一下如果要是执行一个很多的参数的array,举个例子,项目初始的时候,只有5个参数,但是扩展业务的时候,需要扩展更多的参数,那你代码重构的时候需要在array()里面添加一堆的参数,这样会使得代码的可读性变的很差,无论是用于今后的重构,还是扩展业务,都是不利的。而使用bindParam()之后,代码直观,可用性也很高,不用的那一行,完全可以在前面 // ,代码调试也很好。

    以上是以软件工程角度出发的个人想法

PDO—数据库抽象层

本教程主要通过实战演练深入剖析PDO以加深理解

30043 学习 · 396 问题

查看课程

相似问题