вернуть общее количество stmt-> execute () - PullRequest
0 голосов
/ 23 августа 2011

Как узнать количество строк, возвращаемых из запроса при использовании stmt-> prepare (); / stmt-> execute ();
В моем примере ниже, если я не получаю никаких результатов, я бы хотел показать пользователю хорошее сообщение

Есть идеи, как этого добиться?

Спасибо

РЕДАКТИРОВАНИЕ: как заявлено @zerkms, есть решение, но я надеялся на решение, которое не буферизует весь набор результатов в дескрипторе оператора ...

....

$selected_disc = array(1=>'disc1', 2=>'disc2', 3=>'disc3');

// show tracks for each disc in album
$sql = 'SELECT track_id, name FROM album WHERE album_id = ?';

foreach ($selected_disc as $key => $disc) {

    $stmt->prepare($sql);
    $stmt->bind_param('i', $key);
    $ok = $stmt->execute();
    $stmt->bind_result($trackid, $name);

    if( VALUES FOUND, SHOW !) {

        while ($stmt->fetch()) {
            echo $t_name;
        }

    } else {
        echo 'Nothing to display... blablabla';
    }

    $stmt->free_result(); // free the database resources for other queries
}
...

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Для этого есть метод: mysqli_stmt_num_rows () / mysqli_stmt :: num_rows ()

0 голосов
/ 29 августа 2011
/* execute query */
$stmt->execute();

/* store result */
$stmt->store_result();

printf("Number of rows: %d.\n", $stmt->num_rows);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...