收取一批信用卡

时间:2012-02-19 14:59:29

标签: php mysql

我的数据库中有用户订阅,而SUBSCRIPTIONS表有UID(我用CC公司为卡充电),以及DATE_EXPIRED,DATE_PAID,VALID和LENGTH。

我将需要使用某种功能来处理来自数据库的一批订阅并发送给CC公司进行处理,并且在返回时,我应该相应地处理订阅。

在充电完成的情况下,我标记VALID = 1,设置DATE_PAID = NOW(),SET DATE_EXPIRED = NOW + INTERVAL LENGTH MONTH 但如果结果不合适,我需要标记VALID = ERROR_NO并执行一些操作,例如发送电子邮件,提取消息等。

我的问题是关于这种情况的方法, 我将获得一份需要更新的订阅列表,所以:

  1. 您认为处理批次的最佳方式是什么? 我的内部处理功能是使用cURL联系CC服务器,并获得cURL响应。我知道下一步该怎么做。 它是一个文件,我应该写所有必要的订阅?这是我自己的服务器cURL独立批处理?如何将一批结果发送给自己?你认为最好的方法是什么?

  2. 如何一次性处理SELECT结果? 我想我应该澄清一下。假设我理论上有100,000个结果,我想我应该将我的SELECT分成LIMIT X,Y然后放入内存并保存在内存中,但是在下一个SELECT中我会在一个可能不同的表上进行转换(因为它可能已经存在)现在更新)。我想要完成所有100,000个结果,我在第一个SELECT中拥有相同的100,000个结果。当然,完成页面中的所有过程都是无效的,因为整个过程会在您关闭页面后立即停止。

1 个答案:

答案 0 :(得分:1)

使用LOCK TABLES subscriptions WRITE解决您的第二个问题,并在完成后使用UNLOCK表格。尽管如此,除非您在没有RAM的服务器上运行此操作,否则请将这100,000行保留在内存中并使用whilemysql_fetch_assoc之类的mysqli_fetch_assoc循环进行操作应该不是问题。

关于您的第一个问题,为什么不在获取cURL响应时简单地处理cURL响应,并在每个订阅的基础上将结果保存在数据库中?我真的不明白你为什么要先将它放到一个单独的文件中,当然不是为什么你需要使用cURL来联系你自己的服务器呢?

相关问题