gpt4 book ai didi

php - 数据库中的插入值是 0,即使它不应该是

转载 作者:行者123 更新时间:2023-11-29 02:58:15 25 4
gpt4 key购买 nike

我知道我在这里遗漏了一些愚蠢的东西,但是每次在下面的代码中执行其他操作时,0 都会添加到我的列 grupa_id(它在注释 #prikaz plana 下),而实际上它应该从我的其他表中选择最大 ID称为群。当'If'发生时一切都很好,正确的数据被插入到数据库中,即使在我输入'(select MAX(id)FROM grupa)'而不是变量$dataId时也会插入正确的数据。谁能看到我在这里错过了什么?

$dataId;
$Data = $ks->getQuery("SELECT id, naziv from grupa WHERE naziv='$postNazivGrupe'");
if($Data->num_rows>0)
{
while($Row = $Data->fetch_assoc())
{
$dataId = $Row['id'];
}
}
else
{

$Data = $ks->getQuery("INSERT into grupa(oznaka_grupe, naziv, nadgrupa) VALUES ('$postOznaka_grupe', '$postNazivGrupe', '$postNazivNadgrupe')");
$dataId ="(select MAX(id) FROM grupa)";
}


##upis plana
$Data = $ks->getQuery("UPDATE plan SET grupa_id='$dataId' WHERE id=$postID");

最佳答案

在你的其他情况下,你生成了一个无效的 dataId

$dataId ="(select MAX(id) FROM grupa)";

这不是一个有效的 dataId,该查询的结果将是。之前的回答是对的,不知道为什么被删了。

这使得你的查询变成这样

"UPDATE plan SET grupa_id='(select MAX(id) FROM grupa)' WHERE id=$postID"

如果这是您想要的,那么请删除该变量周围的单引号。使用单引号不会执行该子查询并尝试将整个查询作为值,但由于该字段是数字,因此它会转换为 0。删除更新查询中 $dataId 周围的单引号。

这个版本不错

"UPDATE plan SET grupa_id=(select MAX(id) FROM grupa) WHERE id=$postID"

关于php - 数据库中的插入值是 0,即使它不应该是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706272/

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