首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php mysql获取最后插入行的id,给出错误

问php mysql获取最后插入行的id,给出错误
EN

Stack Overflow用户
提问于 2014-02-18 05:17:14
回答 3查看 180关注 0票数 1

我希望获得最后插入行的id,并且我正在使用mysql_insert_id()函数。但给予问题

这是我的代码:

代码语言:javascript
复制
if($i == 0)
{
    $query = "update events set e_did ='".$multi_event."' where eid = '".$display_id."'";
    mysqli_query($con,$query);
    file_put_contents('log.txt', mysql_insert_id(), FILE_APPEND);
}
else
{
    $query = "INSERT INTO events (start_date, end_date, text, rec_type, event_pid, event_length, e_did) VALUES ('".$row['start_date']."','".$row['end_date']."','".$row['text']."','".$row['rec_type']."','".$row['event_pid']."','".$row['event_length']."','".$multi_event."')";
    mysqli_query($con,$query);
    file_put_contents('log.txt', 'A'.mysql_insert_id().'A', FILE_APPEND);
}

现在两次我都得到了相同的身份。有什么问题。我是不是做错什么事了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-18 05:22:02

如果使用mysqli函数,则必须使用id。您不能混合ext/mysql和ext/mysqli。

此外,UPDATE不生成新的自动增量id.您应该在INSERT之后调用mysqli_insert_id(),而不是更新。

票数 6
EN

Stack Overflow用户

发布于 2014-02-18 05:22:08

mysqli_insert_id()只返回用于INSERT查询的id。一个update查询将而不是返回一个id,因为根据定义,您必须在数据库中有一个行才能更新它。

票数 4
EN

Stack Overflow用户

发布于 2014-02-18 05:25:28

使用UPDATE,您正在编辑记录,而不是添加记录。因此不会生成新的ID。您只能在mysql_insert_id上使用INSERT。

注意: mysql_*函数被废弃,在以后的版本中不受支持。您应该使用mysqli_*或PDO。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21844941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档