Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1465 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  questions php/mysql :p

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

questions php/mysql :p

n°347981
art_dupond
je suis neuneu... oui oui !!
Posté le 31-03-2003 à 10:06:05  profilanswer
 

youp,
 
 
je voudrais avoirs quelques confirmations :)
 
 
quand on fait,  
 

1. $brol = mysql_query("SELECT....);
2. $result = mysql_fetch_array($brol);


 
à la ligne 2. la base est-elle interrogée ?  
 
 
deuxième chose, je voudrais savoir ce qui se passe quand deux personnes ajoutent en meme temps quelque chose dans la base.
 
ca peut faire des problèmes non ?
 
j'emploie mysql 3.23.43 et je ne peux pas employer de table Innodb (c'est ca ?). Comment faire pour éviter les problèmes ?
 
 
 
mercitoo le mondeuh :jap:
 
 
 
ps: sorry pour le titre pas explicite, je savais pas quoi mettre


Message édité par art_dupond le 31-03-2003 à 10:17:28
mood
Publicité
Posté le 31-03-2003 à 10:06:05  profilanswer
 

n°348053
Sh@rdar
Ex-PhPéteur
Posté le 31-03-2003 à 11:13:54  profilanswer
 

il me semble que la base n'est lue que lors de l'éxécution de ta requête, ensuite les lignes correspondantes sont placées en mémoire
 
concernant les insertion concurrentes, mysql utilise un système de lock, l'insertion au même moment est impossible (les requêtes sont traitées l'une après l'autre)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°348054
z0rglub
Posté le 31-03-2003 à 11:14:02  profilanswer
 

art_dupond a écrit :

youp,

1. $brol = mysql_query("SELECT....);
2. $result = mysql_fetch_array($brol);


 
à la ligne 2. la base est-elle interrogée ?


non


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°348187
art_dupond
je suis neuneu... oui oui !!
Posté le 31-03-2003 à 13:41:54  profilanswer
 

oki pour le 1
 
par contre ce pour le deux,...  
 
bon je prends un exemple :
 
 
si une action modifie deux trucs dans la base et que le deuxième truc à modifier dépend du premier truc
 
si quelqu'un fait une 'action' => modifier le premier truc
si quelqu'un d'autre fait une action à ce moment là, il va peut-etre re-modifier le truc avant que le deuxième truc (du permier gars) ne soit modifié, ce qui va causer problème...
 
non ?

n°348205
drasche
Posté le 31-03-2003 à 13:57:49  profilanswer
 

avec une simple query select, tu n'as aucun moyen de savoir qu'un autre ne va pas modifier tes données dans l'intervalle.  Il faut que tu gardes une connexion active sur ta DB et réserver (locker) le(s) row(s) que tu as l'intention de modifier, jusqu'à modification ou annulation.  Si tu perds ta connexion, tu perds aussi le lock.  C'est la philosophie du truc.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°348223
art_dupond
je suis neuneu... oui oui !!
Posté le 31-03-2003 à 14:16:04  profilanswer
 

il faut que je fasse une connection persistente c'est ca ?
 
comment on reserve les rows ?

n°348242
Core 666
Posté le 31-03-2003 à 14:32:46  profilanswer
 

art_dupond a écrit :

youp,
quand on fait,  
 

1. $brol = mysql_query("SELECT....);
2. $result = mysql_fetch_array($brol);


 
à la ligne 2. la base est-elle interrogée ?


Non. Tu peux d'ailleurs fermer ta connexion après ta ligne 1.
 

art_dupond a écrit :

il faut que je fasse une connection persistente c'est ca ?
 
comment on reserve les rows ?


Pas besoin d'une connexion persistante, ca n'a rien à voir. Pour bloquer ta table le temps d'un traitement tu dois utiliser, si tu n'as pas accès au handle InnoDB :
 
LOCK TABLES tatable / traitement / UNLOCK TABLES

n°348267
drasche
Posté le 31-03-2003 à 14:42:07  profilanswer
 

mmmh ici c'est une row qu'on veut locker, pas une table, ce que MySQL ne permet apparemment pas (je viens de fouiller la doc à ce sujet).  D'autre part, la doc spécifie qu'un lock est perdu dès que la connexion est coupée.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°348276
Core 666
Posté le 31-03-2003 à 14:45:09  profilanswer
 

drasche a écrit :

mmmh ici c'est une row qu'on veut locker, pas une table, ce que MySQL ne permet apparemment pas (je viens de fouiller la doc à ce sujet).  D'autre part, la doc spécifie qu'un lock est perdu dès que la connexion est coupée.


Si, le row locking est géré, mais sous InnoDB uniquement,  MyISAM se limite au table locking.

n°348388
art_dupond
je suis neuneu... oui oui !!
Posté le 31-03-2003 à 16:14:14  profilanswer
 

oki merci les gens


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  questions php/mysql :p

 

Sujets relatifs
jointures mysqlmysql : quelques questions
[PHP/MYSQL] Charge sur serveur ? + diverses questions...[MySQL] 2-3 questions qui me turlupinent ... [Indexes inside]
mysql sur free, 2 questions[MySQL] Plusieurs questions
PowerBuilder 6.51, MySQL, AMC Données : questions d'ordre général2 ptites questions php / mysql - phpmyadmin
[php/mysql] 2 QUESTIONS INSIDE![PHP-MySQL] Questions ET J'AIMERAIS BIEN DES REPONSES :D
Plus de sujets relatifs à : questions php/mysql :p


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR