|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 21 ![]() |
Bonsoir à tous.
J'ai un problème en PHP avec la fonction mysql_query() et je n'arrive pas à le résoudre après plusieurs heures passées dessus... Voila ma ligne de commande : Code :
mysql_query("UPDATE inscrits SET idrole1=NULL,idrole2=NULL,idrole3=NULL,idrole4=NULL WHERE logininscrit='".$_POST['logininscrit']."';") OR DIE ("Erreur n°".mysql_errno()." : ".mysql_error()); Seulement... Je n'ai aucun message d'erreur et la base de donnée n'est pas mis à jour. Je me suis bien connecté à la base de donnée auparavant. J'ai donc fait un echo du paramètre de mysql_query, j'ai copié l'affichage sur le navigateur de la requête et je l'ai collé dans PHPMyAdmin et la requête à fonctionner. De plus, cette même ligne de commande (Seulement $_POST['logininscrit'] est changé en $_SESSION['logininscrit']) fonctionne sur une autre de mes pages PHP... Voila... Je ne sais plus quoi faire... Pourriez vous m'aider s'il vous plait ? Merci beaucoup d'avance et je vous souhaite de passer une excellente soirée ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Quand tu dis que tu n'as aucun message d'erreur : est-ce à l'exécution que tu n'en as aucun (dans la fenêtre de rendu) ou même les logs PHP/MySQL sont vides ? |
|
00
|
|
|
#3 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
S'il n'y a pas d'erreur et que tu es sur qu'aucune ligne est modifiée (tu pourrais le controler avec affected_rows) c'est que ton WHERE ne cible rien.
Le jeu des encodages et des affichages peut faire que la requete que tu copies/colles n'est pas identique à celle executée. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 21 ![]() |
Et bien lorsque je dis qu'il n'y a aucune erreur, je parle d'affichage à l'écran, pour ce qui est des logs, je ne les ai pas initialisés et je ne m'en était, jusque là, pas servit.
Je viens d'utiliser la commande mysql_affected_rows() et voila l'affichage écran que j'obtiens : "1". Donc la modification s'est bien effectuée... |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 234 ![]() |
ça fonctionne alors ?
Au passage si tu fais des essais successifs d'update avec la même valeur, fait attention avec mysql_affected_rows() car dixit le manuel : Citation:
|
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 21 ![]() |
Non non, cela ne fonctionne pas... Merci pour ton information sur la commande mysql_affected_rows.
Voila, je suis donc encore bloqué sur ce problème. J'ai essayé de faire un update au tout début de ma page sur une seule colonne de la table "inscrits" de ma base de donnée et en utilisant aucune variable et cela réagit de la même manière... (Pas d'erreur mais la base de donnée n'est pas affectée). Voila la ligne de commande : Code :
mysql_query("UPDATE inscrits SET idrole1=3 WHERE logininscrit='testte';") OR DIE ("Erreur n°".mysql_errno()." : ".mysql_error()); |
|
|
00
|
|
|
#7 | |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 234 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : décembre 2010 Messages : 21 ![]() |
Le problème est que mysql_affected_rows() renvoie bien 1... Comme si la mise à jour ne s'enregistrer que très temporairement. J'ai bien essayer de faire un COMMIT derrière mais rien n'y fait...
|
|
|
00
|
|
|
#10 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Il faut que tu debug, reduit ton code a ta requete, reduit ta base a la ligne censé se mettre a jour etc.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com