使用bindParam()方法和使用excute(array())有什么區(qū)別?
使用bindParam()方法和使用excute(array())有什么區(qū)別?
使用bindParam()
$stmt->bindParam(":usernma",$username); $stmt->bindParam(":password",$password);
使用execture()
$stmt->execute(array(":username"=>$username,":password"=>$password));
前面的占位符都是一樣的。那么這兩者有什么區(qū)別?
2019-03-11
execute() 傳參或?bindValue() 是綁定常量到參數(shù);bindParam() 是綁定變量到參數(shù)。
相比之下,綁定變量更加靈活。
2016-02-01
bindParam()使得代碼更加健壯一些,試想一下如果要是執(zhí)行一個(gè)很多的參數(shù)的array,舉個(gè)例子,項(xiàng)目初始的時(shí)候,只有5個(gè)參數(shù),但是擴(kuò)展業(yè)務(wù)的時(shí)候,需要擴(kuò)展更多的參數(shù),那你代碼重構(gòu)的時(shí)候需要在array()里面添加一堆的參數(shù),這樣會(huì)使得代碼的可讀性變的很差,無(wú)論是用于今后的重構(gòu),還是擴(kuò)展業(yè)務(wù),都是不利的。而使用bindParam()之后,代碼直觀,可用性也很高,不用的那一行,完全可以在前面 // ,代碼調(diào)試也很好。
以上是以軟件工程角度出發(fā)的個(gè)人想法