I'm trying to insert unique values for each userID, so that one user can't have more than one of the same cardnumber
$stmt = $pdo->prepare('INSERT INTO bankingdetails (userID, cardHolder, cardnumber, expDate, CVV)
VALUES (?, ?, ?, ?, ?)
WHERE NOT EXISTS (SELECT * FROM bankingdetails WHERE userID = ?
AND cardHolder = ?
AND cardnumber = ?
AND expDate = ?
AND CVV = ?)');
$stmt->execute([$userID,
$_POST['cardname'],
$_POST['cardnumber'],
$expDate,
$_POST['cvv'],
$userID,
$_POST['cardname'],
$_POST['cardnumber'],
$expDate,
$_POST['cvv']]);
After I tried this, it kept adding the same cardnumber combined with the same userID
I've seen this problem before but couldn't find a solution that worked for me.
Any tips are appreciated.
After that I tried something else:
$orderComplete = false;
if($_POST['cardnumber'] == $card['cardnumber']
&& $expDate == $card['expDate']
&& $_POST['cvv'] == $card['CVV']
&& $_POST['cardname'] == $card['cardHolder']) {
$orderComplete = true;
} else {
$stmt = $pdo->prepare('INSERT INTO bankingdetails
(userID, cardHolder, cardnumber, expDate, CVV)
VALUES (?, ?, ?, ?, ?)');
$stmt->execute([$userID, $_POST['cardname'], $_POST['cardnumber'],
$expDate, $_POST['cvv']]);
$orderComplete = true;
}
But that gave me the same result.