繁体   English   中英

PHP准备好的语句返回错误的值

[英]PHP Prepared statement returning wrong value

我试图找出用户是否已经存在于我的数据库中,但是无论我尝试什么,我总是会得到一个错误的结果。

$stmt = $connection->prepare("SELECT * FROM members WHERE member_username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();

if($stmt->num_rows > 0) {
    return 'user exists';
}

我知道这必须非常简单...我显然会忽略这些东西,但是即使用户已经在数据库中,我也总是得到num_rows = 0。

有人可以帮忙吗?

在调用num_rows之前,先调用get_result()store_result()

$stmt = $connection->prepare("SELECT * FROM members WHERE member_username = ?");    
$stmt->bind_param("s", $username);
$stmt->execute();
$res = $stmt->get_result(); //<--- HERE

if($res->num_rows > 0) { //<--- HERE
    return 'user exists';
}

要么

$stmt->execute();
$stmt->store_result(); //<--- HERE

if($stmt->num_rows > 0) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM