php - mysqli 预处理语句 num_rows 函数

标签 php mysql mysqli

<分区>

所以这是我在 MYSQLi 中工作的第一天(从 mysql 转换而来),我在检查重复电子邮件的登录脚本方面遇到了问题:

这是我得到的:

$email = mysqli_escape_string($_POST['email']);

$stmt=$mysqli->prepare("SELECT username from users WHERE email=?");
$stmt->bind_param('s',$email);
$stmt->execute(); 
$nrows1=$mysqli->num_rows;
echo $nrows1;
$stmt->close();

if ($nrows1>0) {
    $_SESSION['loggedin'] = false;
    $_SESSION['error'] = "Our records indicate that there is already an account registered with that email. Please use the 'forgot your password' link below if you cannot remember your password.";
    header('Location: registration.php');
    echo "running insisde duplicate email";
        exit();
}

回显 $nrows1 时,我一直返回 0 行或一个空变量。当我直接在sql中输入查询时,它工作正常。我似乎在关注文档并对其进行了一些修改。

我也使用了受影响的行函数,但我认为这不适合 SELECT 语句,对吗?

真诚感谢任何帮助,非常感谢。

最佳答案

执行后,需要用mysqli_stmt_store_result()得到结果集,这样就知道有多少行了。此外,您应该将 $num_rows 应用于语句,而不是连接。

$stmt->execute();
$stmt->store_result();
$nrows1 = $stmt->num_rows;

关于php - mysqli 预处理语句 num_rows 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27494470/

相关文章:

php - 当我使用PDO时我应该使用addslashes函数吗?

mysql - 在 MySQL 存储过程中选择不返回值

php - 从 MySql 检索 JOIN 数组

php - Laravel 5.0 社交名媛与奇妙 list

php - MySQL 包含/排除帖子

javascript - 如何在Phonegap构建中获取PHP页面?

mysql - 在 Mac OSX 上运行 mysqltuner

php - 将帖子从另一个数据库添加到 WP 数据库

带有特殊字符的php mysql搜索

php - 多个查询相互依赖