Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/09/2006, 21h56   #1
Membre du Club
 
Inscription : février 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 99
Points : 59
Points : 59
Par défaut [Conception] Retour arrière en cas de problème

Salut,

j'essaie de faire du code propre dans mes pages, pour l'instant mon site est à l'essai et donc la charge du serveur n'est pas très importante, mes requêtes SQL sont censés être exécutées en temps voulu mais ... j'ai quelques questions qui m'embetent :

1. Si les requêtes sont correctes en syntaxe, est ce qu'il se peut qu'elles ne passent pas si une trop grosse charge serveur (ou autre chose) arrive ?

2. Comment je peux faire pour revenir en arrière si l'une d'elles ne passent pas ?

En fait j'ai 2 ou 3 requêtes à exécuter pour finir dans ma page, mais si l'une d'entre elles n'est pas exécutée ca peut faire déconner un tas de truc, j'avais regardé du coté des transactions mais est ce que c'est bien ça qu'il faut que je vois ?
et est ce que si une fonction en php me retourne un code erreur je peux annuler des transactions ?

j'aimerais votre aide je suis un peu perdu sur ce sujet, les transactions ont l'air un peu complexes et j'aimerais qu'on me signale si c'est la mauvaise voie avant que je continue

merci d'avance
Link3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 10h00   #2
Membre habitué
 
Avatar de Cobaye
 
Développeur Web
Inscription : décembre 2002
Messages : 115
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2002
Messages : 115
Points : 137
Points : 137
Envoyer un message via MSN à Cobaye Envoyer un message via Yahoo à Cobaye
C'est pas PHP qui te permettra de faire un retour en arrière ! ce que tu peux faire si ton hébergement l'autorise c'est d'utiliser le format de table en InnoDB qui autorise la transaction contrairement au format MyISAM.

En InnoDB tu ouvre une transactino, tu exécute ta requete et si la requete passe du valide la transactino sinon tu l'annule.

Donc change de format de table si tu peux.
a+
Cobaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 10h55   #3
Membre habitué
 
Avatar de SOAD08
 
Inscription : juillet 2004
Messages : 101
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2004
Messages : 101
Points : 104
Points : 104
Envoyer un message via MSN à SOAD08 Envoyer un message via Skype™ à SOAD08
Je n'ai pas bien compris to problème... Tu veux revenir a l'etat precedent de ta table avant la requette en cas d'erreur ?

Car si c'est le cas ou est l'interet si ta requette n'a pas été executée ?
SOAD08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 12h49   #4
Membre du Club
 
Inscription : février 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 99
Points : 59
Points : 59
non c'est le contraire je voudrais executer 3 requetes l'une apres l'autre, mais si l'une d'entre elles ne passent pas revenir en arriere (par exemple la 2e ne marche pas, alors j'aimerais annuler la 1ere), apparemment il faut que je change le format myisam en innodb, ca c'est possible donc je vais changer.
Donc c'est bien possible avec des transactions de revenir en arriere si la totalité de mes 3 requêtes n'est pas executée ?

merci encore
Link3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 18h48   #5
Membre du Club
 
Inscription : février 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 99
Points : 59
Points : 59
juste une question, si la requête est correcte en syntaxe et que normalement elle doit passer à chaque fois, se peut il qu'elle ne passe pas suite a un ralentissement du serveur ou autre chose ? parce que je cherche a faire des transactions pour etre sur que toutes mes requetes passent mais techniquement elles sont bonnes il ne peut pas y avoir d'erreur de syntaxe
peut etre que je m'embete pour rien
Link3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 11h08   #6
Membre habitué
 
Avatar de SOAD08
 
Inscription : juillet 2004
Messages : 101
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2004
Messages : 101
Points : 104
Points : 104
Envoyer un message via MSN à SOAD08 Envoyer un message via Skype™ à SOAD08
C'est possible qu'elles ne passe pas, oui, c'est toujours possible, mais je crois effectivement que tu t'embete pour rien car a là vitesse ou sont executées ces requettes, si la première passe, les 2 suivantes passeront.
SOAD08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 13h52   #7
Membre du Club
 
Inscription : février 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 99
Points : 59
Points : 59
ok merci de cette réponse ca va me faire gagner beaucoup de temps
Link3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h11.


 
 
 
 
Partenaires

Hébergement Web