返回 stmt->execute() 的总数



使用stmt->prepare()时,如何找出从查询返回的行数;/支撑-> 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
}
...

有一个方法:mysqli_stmt_num_rows()/mysqli_stmt::num_rows()

/* execute query */
$stmt->execute();
/* store result */
$stmt->store_result();
printf("Number of rows: %d.n", $stmt->num_rows);

最新更新