如何修改数据库 (mysql) 并在 5 分钟后恢复?
how to modify a database (mysql) and restore it after 5minutes?
我想在用户单击按钮时减少一个值(库存产品数量)"add to cart",并在一段时间后(比如 5 分钟)将该值恢复为初始值?
P.S : 我正在使用 PHP jquery 和 ajax.
您可以使用PDO
(php与MySQL通信)。一个这样的例子是使用 prepared statement 减少数据库中的值以提高 performance (和 security当然):
$sql = "UPDATE myTable SET number_of_products = number_of_products - :quantity WHERE product_id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':quantity', $quantity);
$stmt->bindParam(':id', $id);
$stmt->execute();
然后,由于您已经准备好语句,您可以按如下方式恢复此值(无需重新声明整个 sql 语句)
$stmt->bindParam(':quantity', -$quantity);
$stmt->bindParam(':id', $id);
$stmt->execute();
如果您希望第二个脚本在 5 分钟后执行,您可以实施一个队列系统,例如延迟 5 分钟。还有一些函数可以用来休眠 5 分钟,但是在与用户相同的页面上使用该函数 运行 是非常不切实际的(除非您计划在单独的脚本中使用它),因为用户实际上必须在同一页面上等待 5 分钟。
我想在用户单击按钮时减少一个值(库存产品数量)"add to cart",并在一段时间后(比如 5 分钟)将该值恢复为初始值? P.S : 我正在使用 PHP jquery 和 ajax.
您可以使用PDO
(php与MySQL通信)。一个这样的例子是使用 prepared statement 减少数据库中的值以提高 performance (和 security当然):
$sql = "UPDATE myTable SET number_of_products = number_of_products - :quantity WHERE product_id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':quantity', $quantity);
$stmt->bindParam(':id', $id);
$stmt->execute();
然后,由于您已经准备好语句,您可以按如下方式恢复此值(无需重新声明整个 sql 语句)
$stmt->bindParam(':quantity', -$quantity);
$stmt->bindParam(':id', $id);
$stmt->execute();
如果您希望第二个脚本在 5 分钟后执行,您可以实施一个队列系统,例如延迟 5 分钟。还有一些函数可以用来休眠 5 分钟,但是在与用户相同的页面上使用该函数 运行 是非常不切实际的(除非您计划在单独的脚本中使用它),因为用户实际上必须在同一页面上等待 5 分钟。