JavaScript使用复选框从MySQL数据库中删除多行

JavaScript使用复选框从MySQL数据库中删除多行,javascript,php,jquery,mysql,checkbox,Javascript,Php,Jquery,Mysql,Checkbox,我一直在试图弄清楚如何使用checkbox和JavaScript从MySQL中删除多条记录 现在我已经有了工作脚本,它只从我的db(最新id)中删除一条记录 对于每个产品我都有一个复选框 <input class="checkboxProduct" type="checkbox" name="deleteProduct" value="<?php echo $product['id'];?>"> 您需要在中使用来匹配列表,而不是=。你不能把所有的ID放在一个字符串中,它

我一直在试图弄清楚如何使用checkbox和JavaScript从MySQL中删除多条记录

现在我已经有了工作脚本,它只从我的db(最新id)中删除一条记录

对于每个
产品
我都有一个复选框

<input class="checkboxProduct" type="checkbox" name="deleteProduct" value="<?php echo $product['id'];?>">

您需要在中使用
来匹配列表,而不是
=
。你不能把所有的ID放在一个字符串中,它们必须是文本列表中的独立项

您应该使用参数化语句来防止SQL注入

$product_id = explode(',', $_GET['id']);
// Create a set of ?, ?, ?, ... placeholders the same length as the product ID array
$placeholders = implode(', ', array_fill(0, count($product_id), '?'));
$stmt = $this->conn->prepare("DELETE FROM products WHERE id IN ($placeholders)");
$stmt->execute($product_id);

mysite.com/?deleteProduct=true&action=select&id=1%20或%201%3D1%3B%20--%20gonner
应该是
&action
,而不是
?action
。谢谢,这很好用。我会接受答案,什么时候可以。
public function deleteProduct(){
  try{
    $product_id = $_GET['id'];
    $stmt = $this->conn->prepare("DELETE FROM products WHERE id=('$product_id')");
    $stmt->execute();
  }
  catch(PDOException $e){
    echo $e->getMessage();
  }
}
$product_id = explode(',', $_GET['id']);
// Create a set of ?, ?, ?, ... placeholders the same length as the product ID array
$placeholders = implode(', ', array_fill(0, count($product_id), '?'));
$stmt = $this->conn->prepare("DELETE FROM products WHERE id IN ($placeholders)");
$stmt->execute($product_id);