Nếu bạn muốn kiểm tra xem username
đã được sử dụng:
SELECT * FROM users WHERE username = :username
Nếu bạn trả về một hàng: bạn gặp lỗi , nếu không, bạn thực hiện INSERT
của mình
Vì vậy, mã của bạn sẽ giống như sau:
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;
Bây giờ đây là hai giải pháp để kiểm tra xem bạn có một hàng hay không:
if($test->rowCount() > 0) {
// error
}
hoặc
$user = $test->fetch();
if (!empty($user)) {
// error
}
Và bây giờ nếu bạn không gặp lỗi, bạn có chèn:
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");
}
}