我在PHP中使用$stmt->num_rows
时遇到问题,我不确定我做错了什么。$stmt->num_rows
在本应返回1的情况下返回0。查询执行,并在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;
}
试试这个,先调用store_result
,然后调用fetch
作为结果。
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->store_result();
$stmt->fetch();
if($stmt->num_rows > 0)
{
return $id;
}
return false;
}
return false;
}
return false;
}