首页 > 解决方案 > mySQL中的php自动递增ID与存储的ID不同

问题描述

所以在我的网页上我有一个数据库连接设置。一旦用户在网页上发表评论,它就会将评论添加到数据库中,并且数据库中名为 ID 的列会增加 1。此 ID 用作数据库中每一行的主键。因此,当用户想要删除评论时,它会检查数据库中具有匹配主键的评论。

我目前的解决方案是这样的。

将评论添加到数据库

数据库添加ID

从数据库中获取 ID

将其与注释一起存储在数组中

当用户单击删除评论时,检查评论 ID 是否与数据库中的 ID 匹配。

我的问题是调用数据库添加评论然后再次调用数据库获取评论ID感觉很奇怪。

有没有更好的解决方案?

标签: phpmysql

解决方案


下面我根据您的问题添加了一些代码。假设您有一个名为comments的表,您要在其中插入一些值,并且由于它id是一个自动递增的字段,因此它会与您传递的数据一起自动插入。因此,如果您尝试使用phpmysql ,那么在插入操作之后,您可以轻松获取最后插入的 id,而无需使用$conn->insert_id

$sql = "INSERT INTO comments(commenter, comment)
VALUES ('John', 'How are you?')";

if ($conn->query($sql) === TRUE) {
    $last_id = $conn->insert_id;
    echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

参考: http: //php.net/manual/en/mysqli.insert-id.php


推荐阅读