[PHP MYSQL] Synchronisation des requêtes

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


sietjp
WRInaute passionné
WRInaute passionné
 
Messages: 622
Inscription: Dim Déc 14, 2003 21:05

[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
 
Messages: 29
Inscription: Mar Juin 21, 2005 19:03

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 passionné
WRInaute passionné
 
Messages: 563
Inscription: Mar Aoû 24, 2004 22:25

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 passionné
WRInaute passionné
 
Messages: 622
Inscription: Dim Déc 14, 2003 21:05

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 passionné
WRInaute passionné
 
Messages: 622
Inscription: Dim Déc 14, 2003 21:05

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 passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

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.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Message le Mar Juil 05, 2005 16:08

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


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 Julien Coquet, expert certifié officiellement par Google Analytics.

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