我使用这行代码来检查我的数据库中是否已存在用户名,如果用户不存在则创建它 - 如果它TryParse
echo 'username already exist'
答案 0 :(得分:0)
使用sql查询时,您不会得到true或false。使用此行,您将获得0或1行数据。您必须保存查询的响应,然后您可以访问返回的行数。检查此数字是否为0 =>用户名不在数据库中。
答案 1 :(得分:0)
我不太清楚你想要的东西,如果你想检查用户是否已经存在,只需将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';
}
答案 2 :(得分:0)
好吧,如果你不介意尝试这个,看看。
$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";
}
}