如何在 PHP 没有框架的情况下从 MYSQL 数据库中删除多行

How to delete multiple rows from MYSQL database with PHP no frameworks

我正在尝试处理删除多个带有复选框的项目的查询。我在前端使用 React,在后端使用 php。

我的前端发送有效负载表单数据如下: P.S 我的主键是 SKU。

sku: DVD0004
sku: DVD0005

我需要像这样将这些值合并到 1 个括号中 (DVD0004,DVD0005),以便将它们放入我的查询中

我的API

    public function deleteProduct($prdt_sku)
    {
        try {
            $this->db->query("DELETE FROM products WHERE product_sku = :sku");
            $this->db->bind(":sku", $prdt_sku);

            if ($this->db->execute()) {
                return true;
            } else {
                return false;
            }
        } catch (\Throwable) {
            header("HTTP/1.1 406 Error deleting product from database");
        }
    }

*我的实际表单目的地 *

$response = array();

if (isset($_POST['sku'])) {

    $sku = $_POST['sku'];

    $result = $api->deleteProduct($sku);

    if ($result) {
        header("HTTP/1.1 200 OK");
        header("Location: http://localhost:3000/");
        exit();
    } else {
        header("HTTP/1.1 406 Error deleting product");
    }
} else {
    header("HTTP/1.1 499 Required parameters missing");
}

在前端,我使用 name="sku[]" 将多个 SKU 转换为一个数组;在后端,在 https://whosebug.com/users/9437124/stillkonfuzed 的帮助下,使用

将数据库查询放入 foreach 循环
$sku = $_POST['sku']; 
foreach($sku as $Deletables){
  $result = $api->deleteProduct($Deletables);
}

已修复。

为避免运行 多次删除查询,您可以使用 WHERE IN (a, b, c) 而不是一次删除一条记录。有关详细信息,请参阅 this question