簡體   English   中英

在php PDO中無法通過引用錯誤傳遞參數2

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM