我想检查是否username
已经存在并抛出错误消息(如果存在),有什么提示我该怎么做?
我已经尝试过搜索但只找到了mysql_errno
但这对我不起作用。
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
已被使用:
SELECT * FROM users WHERE username = :username
如果返回一行:你抛出你的错误,否则你就做你的INSERT
所以你的代码应该是这样的:
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;
现在这里有两种解决方案来检查您是否有一行:
if($test->rowCount() > 0) {
// error
}
or
$user = $test->fetch();
if (!empty($user)) {
// error
}
现在,如果没有错误,请插入:
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");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)