Contrôler d'une requête MySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Contrôler d'une requête MySQL

par Pix » 05 avr. 2005, 12:18

Merci Albat
Euh .... tschüss s'écrit bien comme ça :)

par albat » 05 avr. 2005, 12:07

Ma solution est élémentaire, mais je le reconnais volontiers pas terriblement élégante et loin d'être universelle.
Je préfère la tienne qui est tout aussi simple et bien plus astucieuse.
(m'en veux de pas y avoir pensé moi-même !) :evil:

Ça prend un 's' après le T, "TschüB" ? Ah oui, peut-être...

par Hubert Roksor » 05 avr. 2005, 12:05

Tu peux aussi utiliser mysql_affected_rows() pour savoir quels enregistrements ont été réellement modifiées. Si tu fais un UPDATE avec un SID qui n'existe pas, la requête va s'exécuter sans erreur et mysql_query() ne sera pas FALSE. En revanche, mysql_affected_rows() te renverra 0 car c'est le nombre d'enregistrements modifiés. À noter que cette fonction renverra également 0 si le champs avait déjà la valeur que l'on essaie de lui attribuer.

par Pix » 05 avr. 2005, 11:59

Albat je trouve aussi que ta solution est simple et elle fonctionne très bien .
En fait ce que je cherchais à faire c'était un contôle qui puisse fonctionner dans tous les cas de figure.

bye bye

par albat » 05 avr. 2005, 11:54

je ne vois pas bien ce qu'insinue Albat.
J'insinue pas, j'éclaire. :wink:

L'idée était pourtant bien simple.
- si tu as une table contenant n enregistrements,
- si tu insères x nouveaux enregistrements dans cette table,
- si après cette opération, la table contient n+x enregistrements,
= alors c'est que ça a marché. :wink:

par Pix » 05 avr. 2005, 10:42

:oops:

Voici la correction:
$maj="UPDATE matable SET champ1 = '" . $champ1 . "' WHERE SID ='" . $SID . "'";

if (!mysql_query($maj)) { 
echo "Erreur"; // ou autre commande 
}
else {
echo "c'est bon"; // ou autre commande 
}
J'ai testé et à priori ça fonctionne

Merci à tous pour votre aide

Tschüss :wink:

par RLBDC » 05 avr. 2005, 10:36

Je sais pas trop comment te guider car j'ai jamais eu de requette renvoyée à moitié , et je ne vois pas bien ce qu'insinue Albat .

Par contre , ton truc est faux , ça c'est une certitude :wink:

par Pix » 05 avr. 2005, 10:26

bingo!?

En fait c'est tout simple. Qui l'eut cru!

Si on a par exemple:
$maj=mysql_query("UPDATE matable SET champ1 = '" . $champ1 . "' WHERE SID ='" . $SID . "'");
il suffit d'insérer la condition suivante:
if (!mysql_query($maj)) {
echo "Erreur"; // ou autre commande
}
Normalement ça doit fonctionner.
Non?

@+

par albat » 05 avr. 2005, 10:08

Si tu fais un ajout de données (INSERT), tu peux vérifier sa bonne exécution en lançant un simple SELECT count(*). :wink:

Tchüss !

Contrôler d'une requête MySQL

par Pix » 05 avr. 2005, 09:47

Bonjour à tous,

Il arrive parfois que des requêtes ne soient pas entièrement exécutées: ce qui est génant quand on remplit les champs d'une table par exemple.

Est-ce que quelqu'un sait comment on fait pour contrôler si une requête a bien été effectuée?

Merci