【问题标题】:Is MySQL data returned from the query buffered?从查询返回的 MySQL 数据是否缓冲?
【发布时间】:2013-03-29 06:54:27
【问题描述】:

如果我使用 SELECT 语句运行 mysql_query(),那么当我处理所有记录时,另一个进程会修改结果集中的一些数据,这些数据尚未处理。使用 mysql_fetch_row() 获取旧数据还是更新数据?

例如:
表:

id data
1  a
2  b
3  c
4  d

我已经处理了第 1 行和第 2 行,然后使用 id 3 行并将 data 更改为 e
调用 mysql_fetch_row() 会给我一个 data 等于 ce 的数组?

【问题讨论】:

  • 您将获得“旧”数据。

标签: php mysql sql


【解决方案1】:

使用mysql_query,结果将被缓冲。如果您希望它没有缓冲,那么您可以使用mysql_unbuffered_query,但请记住以下几点:

mysql_unbuffered_query() 的好处是有代价的:你不能 在返回的结果集上使用 mysql_num_rows() 和 mysql_data_seek() 从 mysql_unbuffered_query(),直到获取所有行。你也 必须先从无缓冲的 SQL 查询中获取所有结果行 可以使用相同的 *link_identifier* 向 MySQL 发送新的 SQL 查询。

尽管如此,你不应该再使用mysql 函数了,无论如何......

【讨论】:

  • 谢谢。我知道我不应该。我正在慢慢迁移到 MySQLi,但大部分项目仍在 mysql 上。
猜你喜欢
  • 2022-12-05
  • 2011-05-01
  • 1970-01-01
  • 2019-12-31
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 2019-12-02
相关资源
最近更新 更多