1
我想將我的PDO查詢參數作爲數組傳遞給我的execute()方法,而不是使用PDO的bindParams。我這樣做,所以我可以創建一個函數來動態執行具有不同數量參數的類似查詢。
的bindParam()途徑產生預期的結果:
$stmt->bindParam(":user_id",$user_id,PDO::PARAM_INT);
$stmt->bindParam(":n",$n,PDO::PARAM_INT);
$stmt->execute();
但是這個方法返回一個空集,沒有錯誤拋出:
$params = array(":user_id"=>$user_id,":n"=>$n);
$stmt->execute($params);
有人能向我解釋一下這些之間的區別有兩種方法,是什麼導致我的問題?我看到的唯一區別是當我傳遞$ params作爲.execute的參數時,我沒有機會指定類型(POD :: PARAM_INT)。如果這是問題,是否有解決方法?
這不是一個重複的問題。那個問題問哪一個使用,我的問題是如何正確使用execute。在將問題標爲重複之前,請仔細閱讀。 – nathan
你的問題是一個典型的[** xy問題**](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)如果你問過綁定LIMIT變量,你會有發現很多答案[** ie **](http://stackoverflow.com/questions/2269840/php-pdo-bindvalue-in-limit) –
@davidstrachan,我同意。我儘量具體,但在提出問題時,我沒有意識到LIMIT的價值與我的問題有任何關係。 – nathan