检查这是否重复 [英] Check if this is duplicate
本文介绍了检查这是否重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想检查username
是否已经存在,如果存在则抛出错误消息,我该怎么做?
我已经尝试搜索,但是只找到mysql_errno
,但对我不起作用.
I want to check if the username
already exists and throw an error message if exist, any tips how can I do it?
I've already tried to search but only found mysql_errno
but it won't work for me.
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//$password = md5($password);
$sql = "INSERT INTO users (username,password,role) values(?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($username,$password,$role));
Database::disconnect();
header("Location: index.php");
}
sd
推荐答案
如果要检查username
是否已使用:
If you want to check if the username
is already used :
SELECT * FROM users WHERE username = :username
如果返回一行:抛出错误,否则执行INSERT
If you return one row : you throw your error, else you do your INSERT
因此您的代码应如下所示:
So your code should look like this :
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql_check = "SELECT * FROM users WHERE username = :username";
$test = $pdo->prepare($sql_check);
$test->bindParam(':username', $username);
$test->execute;
现在这是两种解决方案,以检查是否有一行:
Now here is two solution to check if you have one row :
if($test->rowCount() > 0) {
// error
}
或
$user = $test->fetch();
if (!empty($user)) {
// error
}
现在,如果您没有错误,请插入:
And now if you don't have error, do you insert :
else {
//$password = md5($password);
$sql = "INSERT INTO users (username,password,role) values(?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($username,$password,$role));
Database::disconnect();
header("Location: index.php");
}
}
这篇关于检查这是否重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文