我在 PHP 中使用
$stmt->num_rows
时遇到问题,我不确定我做错了什么。 $stmt->num_rows
在应该返回 1 时返回 0。查询 does 工作并在 phpMyAdmin 中执行时返回 1 结果。任何帮助将不胜感激。
public function get_login($username, $password)
{
$query = "SELECT `id` FROM `users` WHERE `username` = ? AND `password` = ? LIMIT 1;";
if($stmt = $this->prepare($query))
{
$stmt->bind_param('ss', $username, $password);
if($stmt->execute())
{
$stmt->bind_result($id);
$stmt->fetch();
$stmt->store_result();
if($stmt->num_rows > 0)
{
return $id;
}
return false;
}
return false;
}
return false;
}
试试这个,先调用
get_result
,然后获取结果。
public function get_login($username, $password)
{
$query = "SELECT `id` FROM `users` WHERE `username` = ? AND `password` = ? LIMIT 1;";
$stmt = $this->prepare($query);
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
return $row['id'] ?? false;
}