我希望能夠從數據庫中刪除多個用戶,但下面的代碼在某些時候會失敗。會發生什麼情況是隻有最後點擊的用戶(即數組$ userIds中的最後一個元素)被刪除。刪除多個字段失敗
我在做什麼錯?
從UserModel.php:
public function RemoveUser(Array $userIds) {
$query = 'DELETE FROM Users WHERE id IN (?)';
$stmt = $this->m_db->Prepare($query);
foreach ($userIds as $value) {
$stmt->bind_param('s', $value);
}
$ret = $this->m_db->DeleteUsers($stmt);
$stmt->Close();
return $ret;
}
從database.php中:
public function DeleteUsers(\mysqli_stmt $stmt) {
if ($stmt === FALSE) {
throw new \Exception($this->mysqli->error);
}
if ($stmt->execute() == FALSE) {
throw new \Exception($this->mysqli->error);
}
if ($stmt->fetch()) {
return true;
} else {
return false;
}
}
它看起來像你結合ñPARAMS在查詢''一個插槽,是正常的嗎? – Sebas
您需要動態構建SQL字符串,併爲每個數組元素添加一個「?」。我正在尋找一個解決這個問題的好問題... –
@MichaelBerkowski:啊,我現在看到了問題。但是如何動態創建SQL語句? – holyredbeard