Php mysql fetch是否返回当前数据
我只是想确定一下:当我在php中执行mysql的fetch函数(fetch_array,fetch_object,fetch_all,…)时,我能信任返回当前数据的函数吗 在PHP手册中,我可以阅读fetch_对象的f.e.“将结果集的当前行作为对象返回” 示例设置:Php mysql fetch是否返回当前数据,php,mysql,pdo,Php,Mysql,Pdo,我只是想确定一下:当我在php中执行mysql的fetch函数(fetch_array,fetch_object,fetch_all,…)时,我能信任返回当前数据的函数吗 在PHP手册中,我可以阅读fetch_对象的f.e.“将结果集的当前行作为对象返回” 示例设置: 遍历大约100个表行的PHP脚本 更新一行大约需要5秒钟(因为它同时进行一些计算或远程api访问) 有一个信息栏写着“正在进行” 运行同一脚本的多个进程 在此设置中:我是否可以确保每次提取时都会获得当前“正在进行”的信息,这些
- 遍历大约100个表行的PHP脚本
- 更新一行大约需要5秒钟(因为它同时进行一些计算或远程api访问)
- 有一个信息栏写着“正在进行”
- 运行同一脚本的多个进程
您可能认为我会指向表锁或事务,但我得到了一个订单列表,每次API调用都会发送到另一个系统,因此我必须设置一个信息令牌,以防止其他进程读取和发送相同的订单。好的,我尝试了一些变体,但似乎没有fetch函数返回当前数据-结果集似乎不正确要预定义:
- 带fetch_对象的mysql
- 带fetchObject的pdo
- 至少下面这些也不起作用!
- $stmt=“选择*自…”
- foreach($pdo->查询($stmt)作为$row)
在我的研究中,我还发现GET_LOCK()和RELEASE_LOCK()是解决我问题的“锁定令牌”(参见)。这是我的答案和解决方案(我将在2天内接受它,当我被允许这样做)我不这么认为,
fetch()
(PDO,来自手动)从结果集中获取下一行
,结果集在执行查询时定义。除此之外,如果在获取结果时结果发生了变化,那就很奇怪了。虽然测试很容易:-)您还应该阅读。表级锁定机制是的,当然,如果您每5秒钟进行一次提取,您应该回忆数据库。您知道,直截了当地询问您必须解决的实际问题,而不是询问您所做的一些错误决定是多么重要。好吧,让我们开始讨论;)当我问这个问题时,我这么做是因为我错过了一些mysql处理方面的知识。现在我知道fetch是基于预定义的结果集的,并且不可能仅通过fetch->获取当前数据,所以现在我得到了帮助我的解决方案。如果你能看到这个问题的历史记录,你就会知道它在被否决之前得到了2张赞成票。现在轮到你了,请随意投反对票:D