mysql_insert_id()无法检索自动增量ID

时间:2009-09-16 21:20:47

标签: php mysql mysql-insert-id

$dml = "insert into ... ";
mysql_query($dml,$con);
$Id = isset($row) ? $row['id'] : mysql_insert_id($con);

我看到记录已创建,但无法检索ID。

怎么了?

修改

已修复,这是由$ row引起的。

4 个答案:

答案 0 :(得分:2)

必须设置 $ row,因此它永远不会评估last_insert_id()调用

答案 1 :(得分:0)

您可以在SQL查询中使用内部MySQL SQL函数LAST_INSERT_ID()吗?

答案 2 :(得分:0)

从PHP手册(http://php.net/manual/en/function.mysql-insert-id.php):

  

返回值

     

AUTO_INCREMENT生成的ID   由以前的INSERT查询列   成功,如果上一个查询确实为0   不生成AUTO_INCREMENT值,   如果没有MySQL连接,则为FALSE   建立的。

因此,虽然这看起来很愚蠢,但请确保您插入数据的表包含一个设置了AUTO_INCREMENT属性的列。

答案 3 :(得分:0)

你确定你在“id”中有一个auto_increment,你刚刚插入了一些数据吗?

mysql_insert_id手册指出:

  

返回值
AUTO_INCREMENT列生成的ID   先前的INSERT成功查询, 0   如果先前的查询没有   生成AUTO_INCREMENT,或   FALSE如果没有MySQL连接   建立的。

也许这解释了这个问题?

如果没有,您能为我们提供更多信息吗?像表的结构,和/或完整的插入查询?