INSERT ou UPDATE : Mysql

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

INSERT ou UPDATE : Mysql

Message le Mer Déc 21, 2005 20:12

Bonsoir,

Je me demande comment on peut savoir si une requete d'insertion ou de modification c'est bien effectué ou pas !?

En effet pour une requete de selection je fais le code suivant:
Code: Tout sélectionner
if(mysql_num_rows($result_rq) > 0)
{ ... }


Quand est-il pour les requêtes d'insertion ou de modification ?

Je ne pense pour qu'il faille faire d'abord une requête de selection pour vérifier si ce que l'on veut modifier existe et après uniquement faire la modification. De plus cela ne fonctionnerai pas dans le cas d'une nouvelle insertion.

Merci de votre aide.

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Mer Déc 21, 2005 20:16

J'ai trouvé cela: mysql_affected_rows()
Possible ?


Gaëtan R.
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 311
Inscription: 26 Avr 2004

Message le Mer Déc 21, 2005 20:45

Il suffit de faire un echo ou un die si le mysql_query renvoie une erreur. Comme ça tu sais si ta requête est passée. :)
Code: Tout sélectionner
$req="INSERT...";
mysql_query($req, $cnx) or die("Erreur lors de l'éxécution de la requête");

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Mer Déc 21, 2005 20:48

donc cela permet de vérifier dès lors ou l'ou fait une requete UPDATE que celle-ci à bien eu lieu....?


Gaëtan R.
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 311
Inscription: 26 Avr 2004

Message le Mer Déc 21, 2005 20:53

Ben s'il n'y a pas eu de messages d'erreur, la requête est passée. :)

r23o
WRInaute discret
WRInaute discret
 
Messages: 211
Inscription: 13 Juil 2003

Message le Jeu Déc 22, 2005 1:55

Moi j'fais juste ça :

if(mysql_query($sql)) ...
else ...

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Message le Jeu Déc 22, 2005 2:03

le " or die(message); " est le mieux, je pense

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Jeu Déc 22, 2005 2:18

forummp3 a écrit:le " or die(message); " est le mieux, je pense


Quand je vois ce genre de code dans un script, c'est poubelle direct.

Il faut apprendre à gérer les erreurs dans une application car une erreur fait aussi partie du fonctionnement normal de celle ci.

Le bon code est donc :
Code: Tout sélectionner
if( ! mysql_query( $sql ) ) {
/* Faire quelque chose en cas d'erreur notament logguer la requête SQL, les différentes variables etc .. et bien sûr traiter l'erreur pour que le visiteur sache ce qu'il se passe */
}
else {
// Processus normal
}

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Message le Jeu Déc 22, 2005 2:27

shrom a écrit:
forummp3 a écrit:le " or die(message); " est le mieux, je pense


Quand je vois ce genre de code dans un script, c'est poubelle direct.

Il faut apprendre à gérer les erreurs dans une application car une erreur fait aussi partie du fonctionnement normal de celle ci.

Le bon code est donc :
Code: Tout sélectionner
if( ! mysql_query( $sql ) ) {
/* Faire quelque chose en cas d'erreur notament logguer la requête SQL, les différentes variables etc .. et bien sûr traiter l'erreur pour que le visiteur sache ce qu'il se passe */
}
else {
// Processus normal
}
ben tu dois en mettre beaucoup a la poubelles des scripts :lol:
je ne vois pas en quoi c'est crade de ne pas loguer l'erreur ? Suffit d'afficher l'erreur, ensuite tu debuge selon le message et l'url de la page demandé que l'utilisateur t'aura donné. Enfin, ca depend du script, si tu developent un forum, il y aura des utilisateurs pour te signaler un bug, sinon il est vrai que dans certaines application ca serait bien de loguer les requetes eronnés.

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Jeu Déc 22, 2005 8:34

shrom a écrit:
Code: Tout sélectionner
if( ! mysql_query( $sql ) ) {
/* Faire quelque chose en cas d'erreur notament logguer la requête SQL, les différentes variables etc .. et bien sûr traiter l'erreur pour que le visiteur sache ce qu'il se passe */
}
else {
// Processus normal
}


c'est ce que je faisait ! héhé ! merci ! :wink:


chantra
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 257
Inscription: 27 Juin 2005

Message le Jeu Déc 22, 2005 9:33

en regle general, les update, insert .... renvoit FALSE en cas de probleme

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Déc 22, 2005 10:15

forummp3 a écrit:je ne vois pas en quoi c'est crade de ne pas loguer l'erreur ?


shrom ne parle pas de loguer une erreur mais de gérer une erreur.
Si tu ne comprend pas pourquoi il faut gérer les erreurs, c'est dommage pour toi.

atomikado
WRInaute discret
WRInaute discret
 
Messages: 154
Inscription: 22 Sep 2003

Message le Jeu Déc 22, 2005 10:31

le mieux ca reste quand même :
mysql_query("insert ....") or die(mysql_error());

ca ne t'affiche rien si ta requete a marché,
ca t'affiche l'erreur lorsque ta requete n'est pas bonne


yazerty
WRInaute passionné
WRInaute passionné
 
Messages: 1682
Inscription: 19 Juin 2005

Message le Jeu Déc 22, 2005 11:57

Euh il me semble qu'on peut aussi faire un mix des deux :
Code: Tout sélectionner
if(mysql_query($sql))
{
echo "Ok bonhomme";
}
else
{
echo "<p>Ah pas de chance bonhomme, c'est pas passé dans la moulinette à octets Voici l'erreur générée piim bouum paff :</p>";
mysql_error();
}

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Jeu Déc 22, 2005 14:15

atomikado a écrit:le mieux ca reste quand même :
mysql_query("insert ....") or die(mysql_error());

ca ne t'affiche rien si ta requete a marché,
ca t'affiche l'erreur lorsque ta requete n'est pas bonne


Ca l'affiche aussi au visiteur, tu crois qu'il pense quoi de ton site lorsqu'il voit ça ?

Apprenez un peu à programmer les gars.

INSERT ou UPDATE : Mysql

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité