Попытка получить значение из PHP multi_query - PullRequest
0 голосов
/ 30 июня 2018

Я на некоторое время застрял в этой проблеме и ищу полезные предложения.

$resultset = $connection->multi_query($sql);

pseudo:

IF $resultset > 0 (--> if the sql query returned at least one result) {
 // do something
}

Теперь проблема в псевдо части, я попытался сделать следующее:

if($resultset > 0) // takes no effect
if($resultset->num_rows > 0) // Notice: Trying to get property of non-object

Я должен использовать multi_query, поэтому mysqli_query / mysqli_fetch_array не является решением

спасибо за подсказки ....

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

multi_query() возвращает логическое значение, указывающее, был ли первый запрос успешным, не возвращает объект mysqli_result.

Вы должны вызвать метод store_result(), чтобы получить первый набор результатов.

$resultset = $connection->store_result();

Для получения последующих наборов результатов вы используете more_results() и next_result().

См. Примеры в документации .

0 голосов
/ 30 июня 2018

Пожалуйста, попробуйте:

if($connection->multi_query($sql))
{
    //sample query taken from php manual, see link below
    do {
        /* store first result set */
        if ($result = $connection->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($connection->more_results()) {
            printf("-----------------\n");
        }
    } while ($connection->next_result());

}
else
{
    //handle error
    echo mysqli_error ( $connection );
}

Если вы посмотрите документацию для нескольких запросов ( здесь ), вы увидите, что функция возвращает boolean.

Исходный код также взят из php manual .

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