php - mySQL中的php自动递增ID与存储的ID不同
问题描述
所以在我的网页上我有一个数据库连接设置。一旦用户在网页上发表评论,它就会将评论添加到数据库中,并且数据库中名为 ID 的列会增加 1。此 ID 用作数据库中每一行的主键。因此,当用户想要删除评论时,它会检查数据库中具有匹配主键的评论。
我目前的解决方案是这样的。
将评论添加到数据库
数据库添加ID
从数据库中获取 ID
将其与注释一起存储在数组中
当用户单击删除评论时,检查评论 ID 是否与数据库中的 ID 匹配。
我的问题是调用数据库添加评论然后再次调用数据库获取评论ID感觉很奇怪。
有没有更好的解决方案?
解决方案
下面我根据您的问题添加了一些代码。假设您有一个名为comments的表,您要在其中插入一些值,并且由于它id
是一个自动递增的字段,因此它会与您传递的数据一起自动插入。因此,如果您尝试使用php和mysql ,那么在插入操作之后,您可以轻松获取最后插入的 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
推荐阅读
- object - 我不知道如何开始这个计算
- vb.net - 当我输入 www.messenger.com 时,VB.NET Webbrowser 不显示网站
- c# - 如何使我的 winform 项目可共享?(如何将数据库设置为项目文件夹?)
- collections - Marklogic:将集合的所有文档放入单个 json
- c++ - 在 Qt pro 文件中定义一个布尔值
- python - 是否可以使用 Tensorflow 2.x 高级 API 在 Tensorflow 1.x 训练的模型上运行推理
- json - Parsehub 网站元素仅在特定日期显示
- python - 发布表单已更改以查看
- r - ggtext:element_markdown 不适用于 position = "top"
- react-native - React Native CountdownCircleTimer 每秒重新渲染组件