MySQL - выполнить Select и Delete в разных запросах? - PullRequest
0 голосов
/ 29 мая 2018

Мне было интересно, как бы выполнить два разных запроса, например:

    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 не может содержать не более одного запроса, и есть похожие вопросы, но я могу 'Кажется, я не понимаю ответы на другие вопросы.Если есть вопрос, который решает этот вопрос, я прошу прощения и удалю этот.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Если у вас есть несколько запросов, которые либо основаны на результате предыдущего запроса, либо должны быть выполнены по порядку и каждый из них успешно выполнен, вы можете использовать транзакции.В случае транзакций в случае сбоя одного из запросов вы можете откатить транзакцию.

0 голосов
/ 29 мая 2018

при прочих равных условиях просто не перезаписывайте $rresult из выбора с помощью delete:

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 {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...