gpt4 book ai didi

php - 检查数据库中是否存在用户错误

转载 作者:行者123 更新时间:2023-11-29 07:55:51 24 4
gpt4 key购买 nike

我对 php 非常陌生,并且一直在关注 php academy 的 youtube 教程。基本上它是一个允许登录、注册和记住我选项的脚本,该教程已经有 2 年了,所以我尝试将一些 mysql 函数更改为 mysqli,但我遇到了一些问题..当我输入用户名并点击登录,我得到一个“mysql_num_rows()期望参数1是资源,在user.php第9行给出的字符串”错误,我的if语句说“找不到用户名尝试注册“但它应该显示“存在”,因为我输入的用户名实际上在数据库中。我很困惑,如果脚本不是最安全的,也请原谅我,我知道应该转义一些东西因此,我们将不胜感激您的帮助

User.php:

<?php

function user_exists($username)
{

$username=$username;
$query = ("SELECT count(`user_id`) FROM `users` WHERE `username`='$username'");

if(mysql_num_rows($query)===1)
{return true;

} else{
return false;
}


}




?>

login.php

<?php

include ('core/init.php');


if(user_exists('drellen')===true){
echo "exists";

}

if(empty($_POST)===false){
$username=$_POST['username'];
$password=$_POST['password'];

if(empty($username) === true|| empty($password)=== true)

{

echo $error[]="Enter a username and password";

}
else if (user_exists($username)===false)

{
echo $error[]="Cannot find username try registering";
}




}

请注意 init.php 中包含了 users.php*****可能混合了旧的 mysql 和新的 mysqli 函数,如果能帮助使其完整 mysqli 将不胜感激

最佳答案

您尚未使用mysql_query()来运行查询。没有它如何获得行数。

注意 -> 您应该使用 mysqli_* 函数而不是 mysql_*

$query = mysqli_query("SELECT count(`user_id`) FROM `users` WHERE `username`='$username'");
//$row = mysqli_fetch_array($query);
$count = mysqli_num_rows($query);

关于php - 检查数据库中是否存在用户错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25196505/

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