Insert into

Eléphanteau du PHP | 25 Messages

13 sept. 2021, 11:11

Bonjour. Voici ma requête:
$sql='INSERT INTO message (id_expéditeur, id_destinataire, contenu, date_message ) VALUES ("'.$_SESSION['id_patient '].'","'.$id_destinataire.'", "'.$message.'", "'.$date.'")';

La requête m'insert normalement dans la base de données mais quand j'essaie d'envoyer un deuxième message avec le même id_destinataire et le même id_expéditeur ça n'insert pas dans la base de données pourtant le id auto incrémente dans la base de données augmenté. Je veux que la requête m'insert autant des message dans la base de données avec le même id_expéditeur Et le même id_destinataire.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2021, 11:46

Teste ta requête dans phpmyadmin pour comprendre ce qui bloque.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 25 Messages

13 sept. 2021, 12:11

Voici un exemple que j'ai testé dans phpmyadmin
INSERT INTO message (id_expéditeur,id_destinataire, contenu ) VALUES ("12","16","suis impatient");
La marche mais quand j'excute la même pour la 2e fois ça me sort ce message :
#1062- Duplicate entry '12-16' for key 'id_patient'

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2021, 16:10

Dans phpmyadmin, va dans l'onglet Structure, tu as très probablement un index appelé "id_patient" qui est positionné sur les colonnes id_expéditeur ET id_destinataire.
Cela à pour conséquence de bloquer tout enregistrement qui a le même id_expéditeur ET id_destinataire.

Soit tu supprimes cet index.
Soit tu ajoutes une 3è colonne à cet index par exemple date_message.


:!: Je te recommande d'éviter les caractères spéciaux et notamment les accents dans tes noms de colonne (cf id_expéditeur)
Quand tout le reste a échoué, lisez le mode d'emploi...