【发布时间】:2021-11-28 15:39:55
【问题描述】:
我正在尝试创建类似的东西:
- 当您向 API 发出 POST 请求时,将这些值插入到 MYSQL 数据库中
- 如果它们不再存在于 API 中,则将其删除(因为 API 仅返回活动值)
插入有效,但删除效果不佳。
现在我认为它正在遍历请求并删除每个不匹配的每个 ID。所以它最终会在循环结束时删除所有内容。
我该如何解决这个问题?
<?php
include 'import.php'; // Import from API
include 'connect.php'; // Connect to DB
// Add and Update on duplicate
foreach ($query as $val) {
$fruitId = $val['fruitId'];
$sql = "INSERT INTO basket (fruitId)
VALUES ('$fruitId')
ON DUPLICATE KEY UPDATE
fruitId = '$fruitId'";
if ($conn->query($sql) === TRUE) {
echo "ID has been added";
} else {
echo "Error updating ID";
}
}
// Delete
foreach ($query as $val) {
$fruitId = $val['fruitId'];
$sql = "DELETE FROM basket
WHERE fruitId NOT IN ('$fruitId')";
if ($conn->query($sql) === TRUE) {
echo "ID has been deleted";
} else {
echo "Error updating ID";
}
}
?>
不确定是否有更好/更简洁的方法来实现这一点。
【问题讨论】: