2017-04-15 28 views
-1

我有一個字符串數組,我想用它來從表中獲取結果。我曾嘗試下面的代碼,但它不工作,任何人都可以幫我解決這個問題嗎?如何在mysql語句中執行動態bind_params?

$subCategoryIds = array("2","3","4"); 
$placeholders = implode(', ', array_fill(0, count($subCategoryIds), '?')); 
$stmt = $this->conn->prepare("SELECT * FROM topics WHERE subcategory_id IN = ($placeholders)"); 
$stmt->bind_param("s", $aplaceholders); 
$stmt->execute(); 

我在做什麼錯?任何人都有更好的解決方案?

+1

_ $ aplaceholders_而不是_ $ placeholders_僅僅是一個錯誤類型或..? – Danny

+1

您的選擇查詢錯誤,您無法使用'IN'和'='作爲單列。在你的腳本中也是'$ aplaceholders'。你需要檢查這個帖子:http://stackoverflow.com/questions/17226762/mysqli-bind-param-for-array-of-strings –

+0

亞這是正確的=不應該來,但它仍然不會工作。在查詢是解決方案後,您不需要綁定參數。 –

回答

-2

我得到了這個解決方案,它非常簡單。查詢後不需要綁定參數。

$stmt = $this->conn->prepare("SELECT * FROM topics WHERE subcategory_id IN (".implode(',',$subCategoryIds).")"); 
$stmt->execute(); 
$result = $stmt->get_result(); 
$stmt->close(); 

但是,謝謝你的回答。

+1

此解決方案不使用任何綁定參數 –