繁体   English   中英

PHP PDO提取行为

[英]PHP PDO fetch behaviour

假设表表包含许多记录,并且我在某些情况下查询了一条select语句,在这种情况下为foo = 1 提取记录后,我将使用该记录来执行花费大量时间的操作,并使用sleep(2)使其易于理解。

$stmt = $dbh->query('SELECT * FROM table WHERE foo=1');
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    //do sth
    sleep(2);
}

提取第一行后 ,如果还有其他会话更新表,例如,更新第三行 (假设第三行的原始foo为1)并设置foo = 0,则上述脚本是否仍会检索第三行 我想知道代码背后的提取功能是做什么的。

通常,当您执行查询时,查询将运行到完成,然后将结果发送到数据库驱动程序(在本例中为PDO)以供使用。

即使使用诸如游标或流式行集之类的技术来顺序获取数据,效果也是一样的。 查询的结果将不受后续语句的影响。

将您从PDO检索到的所有内容视为在单个时间点拍摄的快照。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM