my_ulonglong mysql_insert_id (MYSQL * MYSQL)
对象生成的值AUTO_INCREMENT
前一栏插
或者更新
声明。执行。后使用此函数插
语句导入包含AUTO_INCREMENT
田野,或已使用插
或者更新
设置列值LAST_INSERT_ID (
。expr.
)
的返回值mysql_insert_id()
除非在下列条件之一下明确更新,否则总是零:
插
语句将值存储到AUTO_INCREMENT
列。无论该值是通过存储特殊值自动生成的,都是正确的零
或者0
或者是显式的非特殊值。在多行的情况下
插
陈述,mysql_insert_id()
返回第一个自动生成的AUTO_INCREMENT
成功插入的值。如果没有成功插入行,
mysql_insert_id()
返回0。如果
插入……选择
语句,并且没有成功插入自动生成的值,mysql_insert_id()
返回最后一个插入的行的ID。如果
插入……选择
语句使用LAST_INSERT_ID (
,expr.
)mysql_insert_id()
返回expr.
。插
语句生成AUTO_INCREMENT
通过插入值LAST_INSERT_ID (
到任何列,或通过更新任何列expr.
)LAST_INSERT_ID (
。expr.
)如果先前的语句返回错误,则值
mysql_insert_id()
是未定义的。
的返回值mysql_insert_id()
可以简化为以下顺序:
如果有
AUTO_INCREMENT
列,并成功插入一个自动生成的值,返回第一个这样的值。如果
LAST_INSERT_ID (
发生在语句中,returnexpr.
)expr.
,即使有AUTO_INCREMENT
受影响表中的列。返回值因使用的语句而异。当在
插
声明:如果有
AUTO_INCREMENT
列,并且该列有一些显式值已成功插入到表中,返回最后一个显式值。
当在
插入……关于重复密钥更新
声明:如果有
AUTO_INCREMENT
列在表中有一些显式的成功插入值或一些更新值,返回最后插入或更新的值。
mysql_insert_id()
返回0
如果前面的语句不使用AUTO_INCREMENT
价值。如果您必须为以后保存该值,请确保调用mysql_insert_id()
紧接生成值的语句之后。
的价值mysql_insert_id()
仅受当前客户端连接中发出的语句的影响。它不受其他客户端发出的语句的影响。
的LAST_INSERT_ID ()
SQL函数将包含成功插入的第一个自动生成的值的值。LAST_INSERT_ID ()
不会在语句之间重置,因为该函数的值在服务器中维护。另一个区别mysql_insert_id()
是,LAST_INSERT_ID ()
如果设置AUTO_INCREMENT
列转换为特定的非特殊值。看到信息功能。
mysql_insert_id()
返回0
后调用
语句,用于生成AUTO_INCREMENT
因为在这种情况下mysql_insert_id()
适用于调用
而不是过程中的语句。在过程中,您可以使用LAST_INSERT_ID ()
在SQL级别获取AUTO_INCREMENT
价值。
两者差异的原因LAST_INSERT_ID ()
和mysql_insert_id()
是,LAST_INSERT_ID ()
在脚本中易于使用mysql_insert_id()
试着提供更准确的信息AUTO_INCREMENT
列。