mysql-在不同的查询中执行select和delete?

krugob8w  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(317)

我想知道如何执行这样两个不同的查询:

if ($uresult->num_rows >0) {

 while($urow = $uresult->fetch_assoc()) {

 $rresult = mysqli_query($con,"SELECT * FROM allid WHERE postid='$oldid' AND spaceid='$newid'");
 $rresult = mysqli_query($con,"DELETE FROM allid WHERE postid AND spaceid IS NULL");
 $lrow = mysqli_fetch_assoc($rresult);
 $tem = $lrow['postid'];

 $ujson = json_encode($tem);
 echo $ujson;
 }

} else {
}

我知道 mysqli_fetch 我不能接受一个以上的问题,也有类似的问题,但我似乎无法理解其他问题的答案。如果有一个问题解决了这个问题,我道歉,并将删除这一个。

30byixjq

30byixjq1#

如果有多个查询依赖于上一个查询的结果,或者需要按顺序运行,并且每个查询都成功运行,则可以使用事务。对于事务,如果其中一个查询失败,您可以回滚事务。

soat7uwm

soat7uwm2#

在其他条件相同的情况下,简单地说,不要覆盖 $rresult 从选择和删除:

if ($uresult->num_rows >0) {

    while($urow = $uresult->fetch_assoc()) {
        $rresult = mysqli_query($con,"SELECT * 
                                      FROM allid 
                                      WHERE postid='$oldid' 
                                      AND spaceid='$newid'");
        mysqli_query($con,"DELETE FROM allid 
                           WHERE postid AND spaceid IS NULL");
        $lrow = mysqli_fetch_assoc($rresult);
        $tem = $lrow['postid'];

        $ujson = json_encode($tem);
        echo $ujson;
    }

} else {
}

相关问题