$dml = "insert into ... ";
mysql_query($dml,$con);
$Id = isset($row) ? $row['id'] : mysql_insert_id($con);
我看到记录已创建,但无法检索 Id。
怎么了?
编辑
已修复,它是由 $row 引起的。
$dml = "insert into ... ";
mysql_query($dml,$con);
$Id = isset($row) ? $row['id'] : mysql_insert_id($con);
我看到记录已创建,但无法检索 Id。
怎么了?
编辑
已修复,它是由 $row 引起的。
$row 必须已设置,因此它永远不会评估 last_insert_id() 调用
从 PHP 手册(http://php.net/manual/en/function.mysql-insert-id.php):
返回值
前一个 INSERT 查询成功时为列生成的 ID
AUTO_INCREMENT
,如果前一个查询没有生成AUTO_INCREMENT
值,则为 0,如果没有建立 MySQL 连接,则为 FALSE。
因此,虽然这看起来很愚蠢,但请确保您将数据插入其中的表包含具有AUTO_INCREMENT
属性集的列。
你确定你在那个“id”上有一个auto_increment,在你刚刚插入一些数据的表中?
该手册mysql_insert_id
指出:
返回值 上一个查询成功时为列
生成的 ID ,如果上一个查询没有生成值,或者 没有建立 MySQL 连接,则返回 0。AUTO_INCREMENT
INSERT
AUTO_INCREMENT
FALSE
也许这解释了问题?
如果没有,您能否向我们提供更多信息?喜欢表的结构和/或完整的插入查询?
您可以在 SQL 查询中使用内部 MySQL SQL 函数 LAST_INSERT_ID() 吗?