MySQL LAST_INSERT_ID()和FOUND_ROWS()

时间:2011-04-14 18:09:59

标签: php mysql

当PHP脚本每秒有数百个查询时会发生什么?它是否会影响这些函数,是否可以保证它们将从当前脚本中的最后一个insert语句返回最后一个插入的id?它会返回当前脚本中最后一个select的行数吗?如果同时有来自另一个脚本的新插入或选择(如果是FOUND_ROWS())怎么办?这是一个问题吗?

1 个答案:

答案 0 :(得分:2)

来自文档: 对于LAST_INSERT_ID(),最近生成的ID在每个连接的基础上在服务器中维护

这意味着只要您不执行在连接上插入行的任何其他内容,就会保留该值以供您检索。

对于FOUND_ROWS: 通过FOUND_ROWS()可用的行计数是暂时的,并且不能在SELECT SQL_CALC_FOUND_ROWS语句之后的语句之后可用。

这意味着您必须在调用SQL_CALC_FOUND_ROWS后立即执行它。这似乎也是连接范围的,但文档中没有任何内容明确说明。