假设我手里有30个问题。我想一次删除这30个问题。但是有一些编码错误,如果可以帮助我,我们将不胜感激
public function Clear()
{
$stmt = $this->db->prepare("SELECT id FROM ask_data WHERE standart=0");
$stmt->execute();
if ($stmt->rowCount() > 0)
{
$ask_cnt = $stmt->rowCount();
$ask_data = array();
while ($row = $stmt->fetch())
{
$data = array("ask_id" => $row['id']);
$stmt2 = $this->db->prepare("DELETE FROM id FROM questions WHERE ask_id=(:ask_id)");
$stmt->bindParam(':ask_id', $ask_data[$i], PDO::PARAM_INT);
$stmt2->execute();
}
$i = 0;
$count = count($ask_id);
for ($i=0;$i<$count;$i++)
{
$data = array("ask_id" => $row['id']);
$stmt2 = $this->db->prepare("DELETE FROM id FROM questions WHERE ask_id=(:ask_id)");
$stmt->bindParam(':ask_id', $ask_data[$i], PDO::PARAM_INT);
$stmt2->execute();
}
}
}
该delete
语句是错误的-您有两个from
子句。您应该删除FROM id
:
DELETE FROM questions WHERE ask_id=(:ask_id)
话虽如此,您可以通过使用IN
运算符而不是单独的查询来大大简化程序:
DELETE FROM questions
WHERE ask_id IN (SELECT id
FROM ask_data
WHERE standart = 0)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句