Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql fetch是否返回当前数据_Php_Mysql_Pdo - Fatal编程技术网

Php mysql fetch是否返回当前数据

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访问) 有一个信息栏写着“正在进行” 运行同一脚本的多个进程 在此设置中:我是否可以确保每次提取时都会获得当前“正在进行”的信息,这些

我只是想确定一下:当我在php中执行mysql的fetch函数(fetch_array,fetch_object,fetch_all,…)时,我能信任返回当前数据的函数吗

在PHP手册中,我可以阅读fetch_对象的f.e.“将结果集的当前行作为对象返回”

示例设置:

  • 遍历大约100个表行的PHP脚本
  • 更新一行大约需要5秒钟(因为它同时进行一些计算或远程api访问)
  • 有一个信息栏写着“正在进行”
  • 运行同一脚本的多个进程
在此设置中:我是否可以确保每次提取时都会获得当前“正在进行”的信息,这些信息可能会被另一个进程更改


您可能认为我会指向表锁或事务,但我得到了一个订单列表,每次API调用都会发送到另一个系统,因此我必须设置一个信息令牌,以防止其他进程读取和发送相同的订单。

好的,我尝试了一些变体,但似乎没有fetch函数返回当前数据-结果集似乎不正确要预定义:

  • 带fetch_对象的mysql
  • 带fetchObject的pdo
  • 至少下面这些也不起作用!
  • $stmt=“选择*自…”
  • foreach($pdo->查询($stmt)作为$row)
我可能还记得每个循环的db,或者还有其他想法吗

编辑:

感谢你的回答,尤其是@fuzzed!我认为表锁定只用于写访问,但也有一个用于读取。但我发现,如果单个表被锁定,那么另一个会话很难识别表级别的锁定


在我的研究中,我还发现GET_LOCK()和RELEASE_LOCK()是解决我问题的“锁定令牌”(参见)。这是我的答案和解决方案(我将在2天内接受它,当我被允许这样做)

我不这么认为,
fetch()
(PDO,来自手动)
从结果集中获取下一行
,结果集在执行查询时定义。除此之外,如果在获取结果时结果发生了变化,那就很奇怪了。虽然测试很容易:-)您还应该阅读。表级锁定机制是的,当然,如果您每5秒钟进行一次提取,您应该回忆数据库。您知道,直截了当地询问您必须解决的实际问题,而不是询问您所做的一些错误决定是多么重要。好吧,让我们开始讨论;)当我问这个问题时,我这么做是因为我错过了一些mysql处理方面的知识。现在我知道fetch是基于预定义的结果集的,并且不可能仅通过fetch->获取当前数据,所以现在我得到了帮助我的解决方案。如果你能看到这个问题的历史记录,你就会知道它在被否决之前得到了2张赞成票。现在轮到你了,请随意投反对票:D