使用 mysqli 准备语句测试 table 中是否存在一行
testing for existance of a row in a table using mysqli prepared statement
我编写了以下方法来测试 mysql 数据库中是否存在用户名为 $uname 的用户。不幸的是,它 returns 没有行,即使在用户肯定存在的情况下也是如此。我假设有一个并发症,因为它是一个准备好的陈述,但我不确定如何/
public function isUserExists($uname)
{
$b = false;
$sql = "SELECT * FROM `User` WHERE `username` = ?";
$stmt = $this->conn->prepare($sql);
$stmt->bind_param('s',$uname);
$result = $stmt->execute();
echo "num rows: ".$stmt->num_rows;
if($stmt->num_rows >= 1)
{
echo "user already exists"."<br />";
$b = true;
}
return $b;
}
您必须在执行查询后检索结果才能使用结果。在 execute
之后但在使用 num_rows
.
之前添加 $stmt->store_result();
我编写了以下方法来测试 mysql 数据库中是否存在用户名为 $uname 的用户。不幸的是,它 returns 没有行,即使在用户肯定存在的情况下也是如此。我假设有一个并发症,因为它是一个准备好的陈述,但我不确定如何/
public function isUserExists($uname)
{
$b = false;
$sql = "SELECT * FROM `User` WHERE `username` = ?";
$stmt = $this->conn->prepare($sql);
$stmt->bind_param('s',$uname);
$result = $stmt->execute();
echo "num rows: ".$stmt->num_rows;
if($stmt->num_rows >= 1)
{
echo "user already exists"."<br />";
$b = true;
}
return $b;
}
您必须在执行查询后检索结果才能使用结果。在 execute
之后但在使用 num_rows
.
$stmt->store_result();