[英]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.