[SQL] requete qui fonctionne pas - tres etrange

bonjour, alors j’ai une requete qui ne fonctionne pas et je ne voit pas l’erreur! la voici


UPDATE commandeClientRubrique SET commandeClientRubrique_dateScan='2005-10-12' WHERE commandeClientRubrique_idCommande='373';

la, il me met qu’il match une ligne(normal) mais qu’il n’a affecté aucune !!!!

Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0

c’est etrange surtout que j’ai une requete similaire qui fonctionne tres bien


UPDATE commande SET commande_idSource='671' , commande_titre='bonjour vs 1', commande_page='852', commande_dateCommande='2005-10-10', commande_idVeilleur='54fa9023f0abb395025977b879b78a37' WHERE commande_id='373';

et la j’ai comme reponse: Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

si qq’un a une idée !!

Si tu fais un
SELECT * FROM commandeClientRubrique WHERE commandeClientRubrique_idCommande=‘373’

ça te renvoi qchose ?

oui, ca trouve la ligne !!! c’est ca le plus etrange

meme un update sans la date, ca marche, ca vient de la date je pense, mais je sais pas pourquoi !

c’est quoi comme base de donnée ? t’as essayer de mettre la date au format international ? c’est de quel type ton champ commandeClientRubrique_dateScan ?

alors, c’est du mysql, mon champ est un datetime !!!! mais bon mon autre requete fonctionne tres bien, avec la meme syntaxte !!!

Désolé si c’est une question bête :smiley:
mais:
est-ce que la colonne “commandeClientRubrique_dateScan” ne contient pas déjà cette valeur?
est-ce que cette colonne existe? Enfin là, j’imagine qu’il y aurait un message d’erreur.
Bon, ce sont des question sutpides, mais parfois les vérifications de base echappent aux meilleurs. :slight_smile:

oui, elle contient bien une valeur, d’ou le update
oui elle existe sinon, il m’enverai boulé

et mes questions a moi ? :o

ba je T repondu avant !!! regarde, mais oui, j’ai essayé au format internationnal, mais sans succes !
donc c’est une base mysql, le champs de type datetime

alors là je vois pas trop… si tu fais un update sur un autre que 373 ça marche ?

non !!! ca ne marche pas… c’est des que je renseigne la date que ca chi

Non, plus personne???

C’est incomprehensible ce truc !!! :pt1cable:

Oui mais si tu lis la doc de php (http://fr.php.net/manual/fr/function.mysql-affected-rows.php) tu apprends en particulier que Lorsque vous utilisez UPDATE, MySQL ne mettra pas à jour les colonnes si la nouvelle valeur est identique à l’ancienne. Il est donc possible que mysql_affected_rows() ne représente pas forcément le nombre de lignes correspondantes mais plutôt le nombre de lignes qui ont été réellement affectées par la requête.

Donc vérifie si y a un réel UPDATE.

oui, j’avais deja vu ca mais je confirme que la valeur est differente mais que le update ne le fait pas !!!!

Est-ce qu’il y a pas un truc pour les droits d’accès en écriture dans SQL?

Saluton,
N’as-tu pas une clef UNIQUE sur cette table dans la composition de laquelle entrerait la colonne commandeClientRubrique_dateScan ?

Ba non pourtant, voici la strcuture de la table:


CREATE TABLE `commandeClientRubrique` (
  `commandeClientRubrique_id` int(11) NOT NULL auto_increment,
  `commandeClientRubrique_idClient` int(11) default NULL,
  `commandeClientRubrique_idCommande` int(11) default NULL,
  `commandeClientRubrique_idRubrique` int(11) default NULL,
  `commandeClientRubrique_idSousRubrique` int(11) default NULL,
  `commandeClientRubrique_dateCommande` datetime default NULL,
  `commandeClientRubrique_dateSelection` datetime default NULL,
  `commandeClientRubrique_dateScan` datetime default NULL,
  `commandeClientRubrique_datePoste` datetime default NULL,
  `commandeClientRubrique_statut` text,
  `commandeClientRubrique_mode` text,
  PRIMARY KEY  (`commandeClientRubrique_id`)
) TYPE=MyISAM AUTO_INCREMENT=962;

en faisans un:


UPDATE commandeClientRubrique SET commandeClientRubrique_dateScan='2005-10-12' WHERE commandeClientRubrique_idCommande='373';

Et sans le point virgule à la fin, ça donne?

'tin fait un dump de ta table a quelque part qu’on puisse regardez ça, je suis quand meme curieux là :paf:

c’est mysql qui pue :o :ane: