Проверьте, не дублированы ли несколько значений php mysql

У меня есть следующий код, чтобы проверить, если username уже используется, и мне нужно сделать это еще с 4 полями.

if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql2 = "SELECT * FROM users WHERE username = ?";
$q2 = $pdo->prepare($sql2);
$q2->execute(array($username));
$result = $q2->fetchAll();

if (count($result) > 0) {
$usernameError = 'O utilizador já existe!';
}
else{
$sql = "INSERT INTO users (username,password,role) values(?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($username,$password,$role));
header("Location: index.php");
}

Database::disconnect();
}

-1

Решение

Если вам нужно знать, какие поля уже дублированы, используйте что-то вроде этого:

SELECT MAX(username = :username) AS usernameError, MAX(email = :email) AS emailError, MAX(phone = :phone) AS phoneError
FROM users
WHERE username = :username OR email = :email or phone = :phone

Затем вы можете генерировать соответствующие сообщения об ошибках для каждого из столбцов в результате, равном 1,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector