需要PHP Transaction-like sql吗?

时间:2012-04-07 16:10:07

标签: php curl transactions

我首先使用cURL进行身份验证,然后通过POST登录到cms。

然后再次发出另一个POST,要求cms生成一个新的代码编号(例如代金券代码),并从url中获取每页包含约70行的csv。

我可以爆炸每一行并获得之前生成的新代码的最后一行。

我的问题是,如果许多客户创建了很多请求,是否可能意外地读取相同的凭证代码?虽然cURL获取csv文件的速度非常快,但我是否应确保必须先在另一个之前完成请求?就像一个sql事务。

虽然我在哪里读到php并不是并行运行,因为我是所有这些的初学者,有人问我的脚本是否可以导致多个请求。提前谢谢。

1 个答案:

答案 0 :(得分:0)

获得相同凭证代码的唯一方法是远程服务器两次生成相同的代码。你说php do not run in parallel是正确的,但并发性与你的具体情况无关,两个HTTP响应无法相互混淆,因为它们会在不同的TCP流中发回给你。操作系统的底层TCP / IP堆栈将防止冲突。

无论如何,您应该能够在收到数据后检查冲突。例如,如果要将其插入SQL数据库,则可以在保存代码的字段上创建唯一索引,数据库将阻止您插入重复的行。

作为附注,您说can explode each line这是真的,但您可能希望查看fgetcsv()str_getcsv(),它会为您解析这一行并采取行动考虑到转义序列和您编码的各种边缘案例都不会考虑。如果您想一次执行多个cURL请求,您可能还需要查看curl_multi_exec(),这将允许您一次执行多个请求并加快脚本的执行速度。