Tu ne peux pas faire un SELECT renvoyant 2 valeurs dans ce contexte :
(SELECT id_category , id_activity FROM activities WHERE activity=:activity)
Tu dois le remplacer par :
(SELECT id_activity FROM activities WHERE activity=:activity), (SELECT id_category FROM activities WHERE activity=:activity)
Ca me paraît bien compliqué tout ça.
L'id de l'utilisateur, tu devrais l'avoir en session. Son nom en session, c'est plutôt pour des raisons pratiques, comme cache, pour éviter des SELECT si tu l'affiches en header ou autre.
J'aurais bien suggéré un INSERT ... SELECT mais ça ne simplifierait pas plus.
Vu que tu utilises des données en session, tu aurais probablement pu récupérer directement l'id de tes données plutôt que leurs noms.
Non. pseudo ou id, tu te bases toujours sur une info en session. Mais un id ça coûte moins cher à stocker et c'est plus "performant" pour travailler dessus (index de ta bdd). Surtout, un id, c'est fixe, ça ne change pas de valeur dans le temps alors que le pseudo, pas forcément.
ok super merci , j'ai quelques lignes à modifier j'ai une dernière question comment récupérer le code afin de le traiter les codes sqlstate? ça se travaille dans le try catch?
En effet , c'est pour voir si j'ai des doublons ou et éventuellement d'autres codes sqlstate
Insert value list does not match column list: 113
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli