Php 监控mysql表中的订单并存储订单历史记录 我有一些网站时,用户可以点击“订单”,他的订单我保存到订单表 订单表有3个字段:id,user\u id,book\u id

Php 监控mysql表中的订单并存储订单历史记录 我有一些网站时,用户可以点击“订单”,他的订单我保存到订单表 订单表有3个字段:id,user\u id,book\u id,php,mysql,sql,Php,Mysql,Sql,我需要一些脚本来监控订单表中的更改-如果出现一些订单,它将读取它们,“执行”,并从订单表中删除 我怎样才能有效地做到这一点?我以前从未做过类似的事情——我想到过一些php脚本,它将在一些时间间隔内执行(10-15秒,一定很快),并将读取orders表。但后来我想我必须保留订单历史记录-还有第二个问题-我应该为订单历史记录创建第二个表,还是只是在订单表中添加类似“completed”的字段?我同时问这两个问题,因为它们是相互关联的——也许当我的订单表也包含已完成的订单时,用我的脚本查询它将是无效的

我需要一些脚本来监控订单表中的更改-如果出现一些订单,它将读取它们,“执行”,并从订单表中删除

我怎样才能有效地做到这一点?我以前从未做过类似的事情——我想到过一些php脚本,它将在一些时间间隔内执行(10-15秒,一定很快),并将读取orders表。但后来我想我必须保留订单历史记录-还有第二个问题-我应该为订单历史记录创建第二个表,还是只是在订单表中添加类似“completed”的字段?我同时问这两个问题,因为它们是相互关联的——也许当我的订单表也包含已完成的订单时,用我的脚本查询它将是无效的。我正在寻找最好的解决方案

我使用MySQL 5.0数据库

----------编辑


我不能使用触发器-当订单出现在订单表中时,我必须执行一些php脚本来处理订单

你需要一个触发器。像这样的东西会有用的

create trigger newOrderTrigger after insert on order_table for each row
//you order execution code goes here
看。 我也发现这很有帮助


至于你的第二个问题,这取决于你的要求。如果您需要一个完整的可审计历史记录,您可能应该将更改复制到一个新表中。如果不这样做,则添加订单状态并将值从“打开”更改为“完成”会减少工作量。

触发器是您的朋友。您没有在数据库中创建触发器的权限吗?您至少需要更新权限才能将订单标记为已处理。手动读取!-我必须执行一些PHP代码-我不能在触发器中执行-或者我错了?但我必须运行一些PHP脚本来处理订单-我知道我不能在触发器中执行…PHP脚本是与其他程序交互还是仅仅是DB?脚本使用纯PHP来读取订单表和订单处理使用的每个订单一些php库+mysql查询。这个脚本的目的是,当用户单击“订单”时,它可以运行,但处理订单需要一些时间,所以我希望它由一些外部脚本完成,该脚本将处理所有未处理的订单……正如我前面所说,向表中添加一个状态列,并在脚本中查询打开状态。提取订单后,将状态翻转为closed(已关闭)。好的,没问题,但主要问题是如何实现外部脚本/程序,该脚本/程序将监控是否有订单添加到orders(订单)表以立即处理它们。。