我正在尝试在我的数据库中的多个表上执行删除语句,但由于某种原因,此代码无效,我不确定原因。 $ productId使用$ _GET变量传递。这个语句适用于phpMyAdmin,但当我进入我的网站时,它停止工作。语法错了吗?
$sql = '
DELETE FROM products
WHERE prod_id = ' . $productID . '
LIMIT 1;
DELETE FROM product_category
WHERE prod_id = ' . $productID . '
LIMIT 3;
DELETE FROM product_images
WHERE prod_id = ' . $productID .'
LIMIT 1
';
$db->query($sql);
答案 0 :(得分:0)
我建议使用交易。我不知道你在使用什么API,但我喜欢PDO,所以我将展示一个基本的例子。
$db->beginTransaction();
$q1 = $db->query(...);
$q2 = $db->query(...);
$q3 = $db->query(...);
if ($q1 and $q2 and $q3) {
$db->commit();
}
else {
$db->rollBack();
}
为什么交易有用?它允许您将所有查询提交给系统,然后在将其提交给系统之前检查是否存在任何错误和逻辑计算。如果发现任何错误,可以使用rollback()来阻止上述任何查询实际修改数据库。