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

  FORUM HardWare.fr
  Programmation
  PHP

  Sessions et MySQL...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sessions et MySQL...

n°577359
freed102
Arayashiki
Posté le 27-11-2003 à 12:40:57  profilanswer
 

Pensez vous qu'il est mieux de faire une connexion MySQL dans un fichier de variable (qui est utilisé sur toutes les pages)
ou de faire une connexion spécifique chaque fois qu'on veut faire une requete ?
 
Freed

mood
Publicité
Posté le 27-11-2003 à 12:40:57  profilanswer
 

n°577378
anapajari
s/travail/glanding on hfr/gs;
Posté le 27-11-2003 à 13:01:23  profilanswer
 

Je pense qu'avec un connexion par requête, il y a moyen que ton hebergeur devienne rapidement ton ami ...

n°577406
Profil sup​primé
Posté le 27-11-2003 à 13:30:05  answer
 

moi j'a une connection dans mon top_fichier.php que j'include dans les autres page

n°577439
Mara's dad
Yes I can !
Posté le 27-11-2003 à 14:00:16  profilanswer
 

Ou un truc intelligent :
 
Un classe qui gère la connexion.
 
Exemple :
 
dbconnect.php

Code :
  1. <?php
  2. define( 'MYSQL_SERVER', 'localhost' );
  3. define( 'MYSQL_USER', 'user' );
  4. define( 'MYSQL_PASS', 'pass' );
  5. define( 'MYSQL_DBNAME', 'ma_base' );
  6. class dbConnect
  7. {
  8. var cnx;
  9. function dbConnect()
  10. {
  11.  cnx = false;
  12. }
  13. getCnx()
  14. {
  15.  if( ! $this->cnx )
  16.  {
  17.   $this->cnx = mysql_pconnect( MYSQL_SERVER, MYSQL_USER, MYSQL_PASS ) or die( 'Impossible de se connecter : ' . mysql_error() );
  18.   if( ! mysql_select_db( MYSQL_DBNAME, $this->cnx ) )
  19.   {
  20.    die( 'Impossible de sélectionner la base ' . MYSQL_DBNAME . ' : ' . mysql_error() );
  21.   }
  22.  }
  23.  return $this->cnx
  24. }
  25. }
  26. $oDb = new dbConnect();
  27. ?>


index.php

Code :
  1. <?php
  2. include( 'dbconnect.php' );
  3. $result = mysql_query( "select * from toto", $oDb->getCnx() );
  4. ...
  5. ?>


 
Comme çà, la connexion n'est ouverte qu'à la première utilisation. A condition de toujours préciser $oDb->getCnx() lors d'un appel à mysql_query().


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°577476
SomeBugsIn​Me
life suxx
Posté le 27-11-2003 à 14:29:43  profilanswer
 

Perso, j'ai aussi une classe mais moi elle contient aussi des méthodes pour les query, etc... (en fait de simples wrappers autour des fonctions mysql_xxx).
 
et je définis dans un fichier inclus en début de chaque page :
$db = new MaClasse();
$db->connect(...);
 
ensuite, je fais :  
$result = $db->query(...);
 
L'avantage d'utiliser des wrappers (que ce soit une classe ou non), c'est que je gère les erreurs à l'intérieur :
par exemple:
 
class MaClasse {
 var $connexion;
 
 ...
 
 function query($sql) {
  $result = mysql_query($sql, $this->connexion);
 
  if (! $result) die ("la requête SQL a échouée: ".mysql_error());
 
   return $result;
 }
 
}


Message édité par SomeBugsInMe le 27-11-2003 à 14:32:28
n°577485
Mara's dad
Yes I can !
Posté le 27-11-2003 à 14:40:02  profilanswer
 

C'est sûr qu'on peux faire baucoup plus.
C'est juste une base de départ...
Py je l'ai pas pompé dans un truc existant. Je l'ai même pas testé :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°577486
simogeo
j'ai jamais tué de chats, ...
Posté le 27-11-2003 à 14:49:05  profilanswer
 

SomeBugsInMe > pareil ...c'est plus qimple d'utilsation mais ca permet, de plus, de tout encapsuler et eventuellemnt prevoir une migration vers un autre sgbd [:zebra33]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°577487
SomeBugsIn​Me
life suxx
Posté le 27-11-2003 à 14:53:26  profilanswer
 

simogeo a écrit :

SomeBugsInMe > pareil ...c'est plus qimple d'utilsation mais ca permet, de plus, de tout encapsuler et eventuellemnt prevoir une migration vers un autre sgbd [:zebra33]


 
:jap: tout à fait, c'est aussi pour ça que je l'ai fait comme ça.  
 
En plus, je fait des objets dès que je peux (j'aime bien ça moi  :D )  

n°578426
freed102
Arayashiki
Posté le 28-11-2003 à 16:50:31  profilanswer
 

Encore une question... peut-on faire une connexion à plusieurs tables en même temps dans une bdd ?
 
c à dire une seule connexion pour plusieurs tables ?
 
car je comprends pas pourquoi mais dans mon script je ne peux faire trois requetes d'affilée... why ?

n°578439
freed102
Arayashiki
Posté le 28-11-2003 à 16:55:23  profilanswer
 

voici le code...
 

Citation :


  $id_test=$_SESSION['id1'];
  //connexion à la base
  mysql_select_db("$bddname", $connect);  
  $sqlconnect = "SELECT * FROM clients WHERE id='$id_test'";
  mysql_query($sqlconnect);
  $result1 = @MYSQL_QUERY($sqlconnect) ;
  $i=0;
  $sqlid= mysql_result($result1,$i,"id" ) ;
  $sqlraison_sociale= mysql_result($result1,$i,"raison_sociale" ) ;
  $sqlfonction= mysql_result($result1,$i,"fonction" ) ;
  $sqlnom= mysql_result($result1,$i,"nom" ) ;
  $sqlprenom= mysql_result($result1,$i,"prenom" ) ;
  $sqladresse= mysql_result($result1,$i,"adresse" ) ;
  $sqlcp= mysql_result($result1,$i,"cp" ) ;
  $sqlville= mysql_result($result1,$i,"ville" ) ;
  $sqltelephone= mysql_result($result1,$i,"telephone" ) ;
  $sqlfax= mysql_result($result1,$i,"fax" ) ;
  $sqlemail= mysql_result($result1,$i,"email" ) ;
   
  echo mysql_error();  
   
   
  $sqlconnect2 = "SELECT * FROM enlevement WHERE id='$id_test'";
  mysql_query($sqlconnect2);
  $result2 = @MYSQL_QUERY($sqlconnect2) ;
  $i=0;
  $sqlraison_sociale1= mysql_result($result2,$i,"raison_sociale" ) ;
  $sqlfonction1= mysql_result($result2,$i,"fonction" ) ;
  $sqlnom1= mysql_result($result2,$i,"nom" ) ;
  $sqlprenom1= mysql_result($result2,$i,"prenom" ) ;
  $sqladresse1= mysql_result($result2,$i,"adresse" ) ;
  $sqlcp1= mysql_result($result2,$i,"cp" ) ;
  $sqlville1= mysql_result($result2,$i,"ville" ) ;
  $sqltelephone1= mysql_result($result2,$i,"telephone" ) ;
   
  echo mysql_error();  
   
  $sqlconnect3 = "SELECT * FROM livraison WHERE id='$id_test'";
  mysql_query($sqlconnect3);
  $result3 = @MYSQL_QUERY($sqlconnect3) ;
  $i=0;
  $sqlraison_sociale2= mysql_result($result3,$i,"raison_sociale" ) ;
  $sqlfonction2= mysql_result($result3,$i,"fonction" ) ;
  $sqlnom2= mysql_result($result3,$i,"nom" ) ;
  $sqlprenom2= mysql_result($result3,$i,"prenom" ) ;
  $sqladresse2= mysql_result($result3,$i,"adresse" ) ;
  $sqlcp2= mysql_result($result3,$i,"cp" ) ;
  $sqlville2= mysql_result($result3,$i,"ville" ) ;
  $sqltelephone2= mysql_result($result3,$i,"telephone" ) ;
  echo mysql_error();  
   
  mysql_close($connect);


 
 
Pourquoi ça marche pô ???


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

  Sessions et MySQL...

 

Sujets relatifs
editeur mysqlsequence en mysql
Comment qu'on fait en MySQL....[MYSQL] GRANT pour une plage d'@IP
[résolu] accéder à une BDD MySQL sous LinuxMySQL ... conseils pour les tables...
serveur MySQL free : supprimer une table dont le fichier .frm est HS?MySQL, fait pas la différence entre "e" et "é"
Question Mysql/php[PHP/MYSQL]Multimania et les SESSIONS
Plus de sujets relatifs à : Sessions et MySQL...


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