![](/img/trans.png)
[英]Fatal error: Uncaught Error: Cannot pass parameter 2 by reference PDO
[英]Cannot pass parameter 2 by reference error in php PDO
我收到錯誤:無法通過引用傳遞參數2 .....
在這一行......
$stmt1->bindParam(':value', $_SESSION['quantity'.$i] * $_SESSION['price'.$i], PDO::PARAM_STR);
上面的代碼有什么問題?
我想說這是PDO之間的典型混淆:bindParam()和你可能打算使用的東西: PDO:bindValue() 。
PDOStatement::bindParam
將PHP變量綁定到用於准備語句的SQL語句中的相應命名或問號占位符。 與
PDOStatement::bindValue()
, 變量被綁定為引用,並且僅在調用PDOStatement::execute()
時進行計算。
PDOStatement::bindValue
將值綁定到用於准備語句的SQL語句中的相應命名或問號占位符。
它期望第二個參數是一個可以通過引用傳遞的變量。 假設$stmt1
是一個PDO語句,那么就像bindparam的文檔所說的那樣
與PDOStatement :: bindValue()不同,變量被綁定為引用,並且僅在調用PDOStatement :: execute()時進行計算。
你的第二個參數是一個表達式( $_SESSION['quantity'.$i] * $_SESSION['price'.$i]
)不是變量。 既然你現在想要評估exptression,我想你應該使用bindValue()
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.