Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064
Bonjour,
Une erreur PHP apparait, mais je ne vois pas l'erreur de syntaxe que j'aurai pu faire.
Voici l'erreur :
Citation:
<br />
<b>Fatal error</b>: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1 in D:\xampp\htdocs\project\php\contact_swiftMailer.php:22
Stack trace:
#0 D:\xampp\htdocs\project\php\contact_swiftMailer.php(22): PDOStatement->execute(Array)
#1 {main}
thrown in <b>D:\xampp\htdocs\projectt\php\contact_swiftMailer.php</b> on line <b>22</b><br />
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| /* echo 'creation newsletter';*/
if(isset($_POST['newsletter'])) {
include 'connect_database.php' ;
$newsletters_nom = ( $_POST['nom'] ) ?? null;
$newsletters_mail = ( $_POST['email'] ) ?? null;
$req1 = $bdd->prepare("SELECT COUNT(1) FROM newsletters WHERE newsletters_mail = :newsletters_mail");
$req1->execute(['newsletters_mail' => $newsletters_mail]);
$count = $req1->fetchColumn();
if ($count == 0) { // inscription a la newsletter
$insertSQL = $bdd->prepare('INSERT INTO newsletters(newsletters_nom, newsletters_mail) VALUES(:newsletters_nom, :newsletters_mail)') ;
$insertSQL->execute(array(
'newsletters_nom' => $newsletters_nom,
'newsletters_mail' => $newsletters_mail
));
}
elseif ($count == 1) { //l'utilisateur est deja inscrits dans la base... donc on update juste le nom
$updateSQL = $bdd->prepare('UPDATE newsletters SET newsletters_nom= :newsletters_nom WHERE newsletters_mail= :newsletters_mail)') ;
$updateSQL->execute(array(
'newsletters_nom' => $newsletters_nom,
'newsletters_mail' => $newsletters_mail
));
}
} |
A noter que lorsque le count est à 0, l'insert passe bien. Et l'insert passe également si je la place à la place de l'UPDATE, donc c'est dans mon update que le problème semble résider...
Merci d'avance!