[PHP MYSQL] Synchronisation des requêtes

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


sietjp
WRInaute impliqué
WRInaute impliqué
 
Messages: 624
Inscription: 14 Déc 2003

[PHP MYSQL] Synchronisation des requêtes

Message le Ven Juin 24, 2005 9:00

Bonjour,
Il y a un truc qui me turlupine depuis quelques jours et je ne trouve pas la réponse.

Est ce que pendant l'exécution d'un script PHP faisant des requêtes à la base MYSQL peut être interrompu par l'exéction d'un autre script PHP faisant des requêtes à la même base MYSQL?
Cela voudrait dire qu'une requête exécutée en début de script ne donnerait pas forcément le même résultat si elle est exécutée en fin de script (dans le cas un autre script a modifié la table concernée entre temps).

Dites moi que c'est pas possible hein?

[David]
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 21 Juin 2005

Message le Ven Juin 24, 2005 9:40

Biensurs que non, en général, tu as 10 conections simultanées autorisé .... si la personne qui arrive est la 11, sa ne coupe rien, elle aura juste droit à une erreur PHP, Too Many Connections ;)

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

Message le Ven Juin 24, 2005 9:41

hmm, réponse de tête (donc soumise à corrections)
il me semble qu'il existe un système de file d'attente des requêtes SQL, mais théoriquement, il est possible que le cas que tu décris arrive...

SQL 1 (Script 1): Lecture données
SQL 2 (Script 2): Update données
SQL 3 (Script 1): Lecture données

il est théoriquement possible, je pense, que SQL 1 et SQL 3 ne renvoient pas les mêmes données...
("please don't shoot the messenger", comme dirait l'autre)


sietjp
WRInaute impliqué
WRInaute impliqué
 
Messages: 624
Inscription: 14 Déc 2003

Message le Ven Juin 24, 2005 10:05

Si ce que tu dis est vrai, Didier_S, c'est vraiment une mauvaise nouvelle. Je suis en train de réaliser un noueau site communautaire avec des locks pour qu'il ne puisse pas y avoir d'édition concurrente et là ça change tout...

Peut-être Apache pourrait être le sauveur dans cette histoire, quand un script PHP s'exécute, il n'attend pas la fin du script pour exécuter le suivant? Sinon, il y a peut être moyen de le configurer...


sietjp
WRInaute impliqué
WRInaute impliqué
 
Messages: 624
Inscription: 14 Déc 2003

Message le Mar Juil 05, 2005 15:45

Je fais profiter de ce que j'ai trouvé, la commande "LOCK TABLES table WRITE" permet de faire attendre les autres threads qui voudraient accéder à la table lockée, ça permet d'éxecuter une suite de requête sur une table en étant sûr de ne pas être intérompu par une autre requête sur cette même table.

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

Message le Mar Juil 05, 2005 16:07

Si tu dispose de MySQL4 avec innodb, il y a les transactions et notament le niveau d'isolation pour gérer ce type de problème.


Patrice A.
WRInaute passionné
WRInaute passionné
 
Messages: 2415
Inscription: 11 Fév 2005

Message le Mar Juil 05, 2005 16:08

sietjp a écrit:un nouveau site communautaire avec des locks
un site rasta ? :o


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

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités