【问题标题】:My PHP username line is not checking if the username already exist in my db我的 PHP 用户名行未检查用户名是否已存在于我的数据库中
【发布时间】:2017-10-11 09:53:49
【问题描述】:

我使用这行代码检查用户名是否已存在于我的数据库中,如果用户不存在,则创建它 - 如果存在则echo 'username already exist'

if(!DB::query('SELECT username FROM users WHERE username=:username', array(':username'=>$username))){
    //create user
    DB::query('INSERT INTO users VALUES (null, :username, :password, :email)', array(':username'=>$username, ':password'=>password_hash($password, PASSWORD_BCRYPT), ':email'=>$email));
    echo "SUCCESS!";
} else {
    echo 'USER ALREADY EXIST';
}

【问题讨论】:

  • 您的问题是什么?你到底遇到了什么问题?

标签: php database phpmyadmin


【解决方案1】:

如果你不介意试试这个看看。

$pWord = password_hash($password, PASSWORD_BCRYPT);

$chkUname = $dbconnect -> prepare("SELECT username FROM users WHERE username=:username");
$chkUname -> bindParam(':username', $username);
$chkUname -> execute();

$rowCoun = $chkUname -> rowCount();

if($rowCoun > 0){
    echo "USER ALREADY EXIST";
}else{
    $addUsr = $dbconnect -> prepare("INSERT INTO users VALUES (null, :username, :password, :email)");
    $addUsr -> bindParam(':username', $username);
    $addUsr -> bindParam(':password', $pWord);
    $addUsr -> bindParam(':email', $email);

    if($addUsr -> execute();){
        echo "SUCCESS!";
    }else{
        echo "SOMETHING WENT WRONG";
    }
}

【讨论】:

    【解决方案2】:

    使用 sql 查询,您不会得到真或假。使用此行,您将获得 0 或 1 行数据。您必须保存查询的响应,然后您可以访问返回的行数。检查此数字是否为 0 => 用户名不在数据库中。

    【讨论】:

    • 我已经尝试过: if(explode(' ', $query)[0] == 'SELECT'){ $data = $statement->fetchAll();返回$数据; }
    【解决方案3】:

    我不是很清楚你想要的东西,如果你想检查用户是否已经存在,只需将SELECT username更改为SELECT COUNT(id)

    if (!DB::query('SELECT COUNT(id) FROM users WHERE username=:username', array(':username'=>$username))) {
        //create user
        DB::query('INSERT INTO users VALUES (null, :username, :password, :email)', array(':username'=>$username, ':password'=>password_hash($password, PASSWORD_BCRYPT), ':email'=>$email));
            echo "SUCCESS!";
    } else {
        echo 'USER ALREADY EXIST';
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 2021-12-15
      • 2012-01-26
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2013-12-16
      • 2019-06-19
      相关资源
      最近更新 更多