Как исправить ошибку «Команды не синхронизированы» при выполнении нескольких запросов? - PullRequest
0 голосов
/ 17 октября 2018

Я получаю эту ошибку:

Команды не синхронизированы;Вы не можете выполнить эту команду сейчас

Вот мой код:

$sql_moneyboxs = "SELECT SUM(Amount) AS inflow
        FROM payment_details WHERE DATE(created)='$todayDate' and paymentMode='cash' GROUP BY DATE(created)";   

$sql_moneyboxs .= "SELECT SUM(Amount) AS inflow
        FROM payment_details WHERE DATE(created)='$todayDate' and paymentMode='card' GROUP BY DATE(created)";

if(mysqli_multi_query($link,$sql_moneyboxs)){
    do{
        if($result=mysqli_store_result($link)){ // ignore if no record set
            while($row=mysqli_fetch_array($result)){

                    echo $row['inflow'];
            }
            mysqli_free_result($result);
        }
    } while(mysqli_more_results($link) && mysqli_next_result($link));
}
if($error_mess=mysqli_error($link)){
    echo $error_mess; // here is the problem
}

1 Ответ

0 голосов
/ 17 октября 2018

Во-первых, должна быть точка с запятой ; между операторами SQL при запуске через phpMyAdmin или mysql-workbench и т. Д. Это, вероятно, исправит ваше сообщение об ошибке.

Но ....

Поскольку единственное различие между вашими двумя запросами - это значение столбца paymentMode, почему бы не использовать UNION или не обрабатывать его через SQL вкаким-то другим способом?Таким образом, у вас будет одна команда SQL, у вас будет один набор результатов для цикла и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...