Bonjour,
Une erreur PHP apparait, mais je ne vois pas l'erreur de syntaxe que j'aurai pu faire.
Voici l'erreur :
Voici mon code :<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 />
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 )); } }
Merci d'avance!
Partager