gpt4 book ai didi

php - 为什么检查重复用户名的代码无法正确执行?

转载 作者:行者123 更新时间:2023-11-29 10:44:40 25 4
gpt4 key购买 nike

$conn 正确连接到数据库。

数据库的users表由以下字段组成:id、name、email、用户名和密码。表中的条目之一包含 benedict 作为用户名的值。

代码:

$userslist = $conn->prepare("SELECT * FROM users WHERE username=?");
$userslist->bind_param("s",$user);
$usersresult=$userslist->execute();
if($userslist->num_rows>0)
{
$userErr="Username already exists";
$errors++;
}

问题:

当我输入一个用户名(存储在 $user 中)并以 benedict 作为值时,代码不会检测到重复的 ID,尽管已经有这样的用户名。此外,$userslist->num_rows 打印时显示为 0。

相反,以下代码正确识别重复的 id 已存在并打印错误。 (这证明没有连接错误或表错误)

$query="SELECT * FROM users WHERE username='".$user."'";
$qresult=mysqli_query($conn,$query);
if($qresult->num_rows>0)
{ $userErr="Username already exists";
$errors++;
}

我知道唯一 key 和 PDO 是更好的解决方案。但为什么它在使用准备好的语句时不能打印正确的结果。

最佳答案

受影响的行结果为:-1 表示查询返回错误,因此未执行。

检查您的查询是否存在列/表名称等错误。

您的连接正常吗?

请尝试以下方法进行调试:

$userslist = $conn->prepare("SELECT * FROM users WHERE username=?");
$userslist->bind_param("s",$user);
$usersresult=$userslist->execute();
print_r($conn->error);

关于php - 为什么检查重复用户名的代码无法正确执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44841975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com