gpt4 book ai didi

php - 为什么只有 lastinsertid 被插入到 foreach 的数据库中?

转载 作者:行者123 更新时间:2023-11-30 22:41:45 29 4
gpt4 key购买 nike

我正在使用一个 foreach 循环,它将变量 $thread_id 分配给 lastInsertId() 的值。

然后 $thread_id 被插入到 applicants 表中。

我遇到的问题是它将循环中的最后一个值插入到所有行中。但奇怪的是,当我将 $thread_id 输出到控制台时,每次循环迭代时它都会显示不同的值。

例如,当我在控制台中输出 $thread_id 时,它显示了这个

1,2,3,4,5,6

然后当我查看申请人表中的所有行时,我看到了这个

66个6个6个6个6

我真的很困惑为什么会这样。如果有人可以帮助我解决这个问题,我将不胜感激。下面是我的代码。

$msg_table_insert = $db->prepare("INSERT INTO msg_messages (
sender_id,recipient_id,msg ) VALUES (
:sender_id, :recipient_id, :msg)");

$applicant_update_query = $db->prepare("UPDATE applicants SET thread_id = :thread_id ");


foreach($applicants as $applicant)
{

if($thread_id == 0){
$msg_table_insert->execute(
[':sender_id' => $applicant_array[SENDER_ID],
':recipient_id' => $applicant_array[RECIPIENT_ID],
':msg' => $templated_msg_body]);

$thread_id = $db->lastInsertId();

$applicant_update_query->execute([':thread_id' => $thread_id ]);
}
}

最佳答案

有人解决了您的错误,但除此之外,为什么?您使用 lastinsertId() 更新一行中的字段;插入后。您应该为此定义一个字段,以便 mysql 自动为您完成。

关于php - 为什么只有 lastinsertid 被插入到 foreach 的数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30971693/

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