Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在使用准备好的语句验证数据库中是否已存在用户名。。。如何?_Php_Validation_Mysqli_Prepared Statement - Fatal编程技术网

Php 正在使用准备好的语句验证数据库中是否已存在用户名。。。如何?

Php 正在使用准备好的语句验证数据库中是否已存在用户名。。。如何?,php,validation,mysqli,prepared-statement,Php,Validation,Mysqli,Prepared Statement,我正在尝试验证用户名,以确保我的数据库中不存在相同的用户名。我试图用事先准备好的陈述来做到这一点 我现在正试图通过检查STMT返回的内容来查看post是否存在。我真的不确定我的方向是否正确 我做错了什么 编辑:尽管我尝试了别人的建议,但我仍在向数据库中添加重复的用户名 if (empty($username)) { $usernameError = "Required!"; } else if (preg_match('/^[A-Z \'.-]{2

我正在尝试验证用户名,以确保我的数据库中不存在相同的用户名。我试图用事先准备好的陈述来做到这一点

我现在正试图通过检查STMT返回的内容来查看post是否存在。我真的不确定我的方向是否正确

我做错了什么

编辑:尽管我尝试了别人的建议,但我仍在向数据库中添加重复的用户名

    if (empty($username))
    {
        $usernameError = "Required!";
    }
    else if (preg_match('/^[A-Z \'.-]{2,20}$/i', $username))
    {
        if ($stmt1 = $dbc->prepare("SELECT username FROM users WHERE username = ?"))
        {
            $stmt1->bind_param('s', $username);

            $stmt1->execute();

            if($stmt1->num_rows>0)
            {           
                $usernameError = "Username already exists!";
            }
            else
            {
                $usernameError = "";
            }

            $stmt1->close();
        }
    }
    else
    {
        $usernameError = "Incorrect Username!";
    }
不要使用
if($stmt!=FALSE)
使用
if($stmt->num\u rows>0)

使用这种方法很有效

(发布,因为无法删除带有答案的问题)


与选择任何其他数据的方式完全相同-通过对服务器运行查询。@根据您的常识,这不会太糟糕,但只是尝试学习使用准备好的语句。没有它们,我就不会有那么多麻烦。学习并不意味着写随机代码,然后问为什么它不起作用。遵循教程是一个相当好的方法,我检查过了,我担心即使数据库中已经存在相同的用户名,我仍在进行注册。+1指出我的错误,
STMT=!FALSE在我的情况下不起作用。
 if($stmt->num_rows>0){

   $usernameError = "Username already exists!";
}else{

    $usernameError = "";
}
if($stmt->fetch())
{           
    $usernameError = "Username already exists!";
}
else
{
    $usernameError = "";
}