MYSQL准备语句选择Row_Count

时间:2015-03-28 18:08:35

标签: mysql select prepared-statement

我有一个简单的SQL查询:

$stmt = $db_main->prepare("SELECT id FROM user WHERE username=? AND mail=? LIMIT 1");
$stmt->bind_param('ss', $username, $mail);
$stmt->execute();

我想知道,如果找到了用户。所以我想计算找到的行数。 我已经尝试过使用rowCount(对SELECT不安全)或者num_rows,或者只是查看结果id是否为数字(''不会,我希望...)

必须有一种简单的方法来计算选定的行,不是吗?

1 个答案:

答案 0 :(得分:3)

检查返回的行数:

$stmt->num_rows;

检查实例this site

p.s。 :根据评论中的问题添加:使用fetch()以获取下一条记录。

...
$stmt->execute();
$stmt->bind_result($user_id); // access id
$stmt->store_result();        // optional: buffering (see below)

if ($data = $stmt->fetch()) {
    do {
        print("Id: " . $user_id); 

    } while ($data = $stmt->fetch());

} else {
    echo 'No records found.';
}

关于documentation中的store_result()“你必须为每个查询调用mysqli_stmt_store_result()...,当且仅当你想要缓冲客户端的完整结果集时......”

相关问题