JavaScript使用复选框从MySQL数据库中删除多行
我一直在试图弄清楚如何使用checkbox和JavaScript从MySQL中删除多条记录 现在我已经有了工作脚本,它只从我的db(最新id)中删除一条记录 对于每个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放在一个字符串中,它
产品
我都有一个复选框
<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);