如何在 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。
我正在尝试处理删除多个带有复选框的项目的查询。我在前端使用 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 的帮助下,使用
$sku = $_POST['sku'];
foreach($sku as $Deletables){
$result = $api->deleteProduct($Deletables);
}
已修复。
为避免运行 多次删除查询,您可以使用 WHERE IN (a, b, c) 而不是一次删除一条记录。有关详细信息,请参阅 this question。