gpt4 book ai didi

php - 应将相同的自动增量 ID 插入到插入查询中

转载 作者:可可西里 更新时间:2023-11-01 08:44:27 25 4
gpt4 key购买 nike

我需要你们的帮助。我不知道这可能与否。

在 PHP 中,当我将新查询插入数据库时​​,ID 值将自动递增。我在该查询中还有一个变量,即 parentID

运行查询时,parentID 应该等于自动增量 ID。

我试过 mysqli_insert_id($conn); 这个函数。获取最后一个 ID。添加一个具有该值的值,然后将该值分配给 parentID,然后插入到数据库中。

但有些时候可能会出现隔离问题。因此,任何一个指南都可以提供一些其他解决方案来避免隔离问题。隔离意味着当我尝试插入时,我从数据库中获得了最后一个 ID。现在将该值分配给 ParendID 变量。然后我尝试插入数据库。假设这可能需要几分钟。在那几分钟内,其他一些人可能会插入他们自己的问候。那时我的最后一个 ID 会有所不同。所以我插入了错误的 parendID 值。

请任何人帮我解决这个问题..!!

<?php
//My connection
$last_id = $conn->insert_id; //get last ID from DB
$parent_id = $last_id + 1;

$sql = "INSERT INTO MyGuests (firstname, lastname, email, ParentID)
VALUES ('John', 'Doe', 'john@example.com', $parent_id)";

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

?>

首先,我获取 LastID,然后用该值添加 One。然后我将插入数据库。除了这种方法,在查询本身中,直接可以给出任何其他可能的解决方案来分配父 ID 等于字段的当前 ID?

最佳答案

这可以在触发器的帮助下完成,您需要做的就是将 id 的新值复制到“插入后”的 parentID 中。

CREATE TRIGGER ins_parentID 
AFTER INSERT ON MyGuests
FOR EACH ROW SET
NEW.ParentId = NEW.ID;

代码应该看起来像这样(这个没有经过测试)

关于php - 应将相同的自动增量 ID 插入到插入查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com