Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: GoldRazor le le 06-06-2006 a 13:15:39

Titre: suggestion connection base mysql
Posté par: GoldRazor le le 06-06-2006 a 13:15:39

Bonjour,
Voila j'ai une question qui me trotte dans la tete depuis un certain temps et je vais vous en faire part.
Mon site affiche défois le message "too many connection to database mysql ..." enfin un trucs dans le genre.

Mn site est fait de maniere a ce que chaque include se connecte elle meme a la base. Donc si dans ma page ya 6 include, la base s'ouvre et se ferme 6 fois par rafraichissement.

Je me pose la question suivante : Est il possible de faire en sorte d'ouvrir la base une fois, de charger toutes les requete (pour les include) et de refermer la base un fois que ces operation sont fini ? Ce qui allegerer le nombre de connection à la base. Je sais pas si j'ai été clair mais si vous avez une solution, merci de me la soumettre.
A bientot

Titre: Re:suggestion connection base mysql
Posté par: vertigo_76 le le 06-06-2006 a 14:13:57

Salut,

Tu ouvres ta connexion, tu fais tes include dans lequels il n'y a que les requttes puis a la fin tu referme ta connexion.

Je le fais sur mes sites et n'ai pas encore rencontré de problème?

@+

Vertigo

Titre: Re:suggestion connection base mysql
Posté par: GoldRazor le le 06-06-2006 a 15:49:48

Merci vertigo davoir repondu.
donc c'est faisable, ca me rassure car j'ai essayé mais ca ma fait une grosse erreur :

Voici ce que j'ai fait :

Dans le fichier index.php, j'ai mis :

include (config.php) contenant :


Code:
<?

$host = "***";
$user = "****";
$password = "*****";
$bdd = "***";
#
# //Chaine de connection a la base de donnee
$conn = mysql_connect($host, $user, $password);
#
# //Verification, de la possiblite d'acceder a la base de donnee
mysql_select_db($bdd) or die("Impossible d'ouvrir la base de donnee $bdd");
?>


Puis un include (partenaire.php) en dessous de l'include config.php :


Code:
<?php $select =mysql_query("SELECT * FROM SPGPartenaires WHERE valide='0' ORDER BY entrees DESC LIMIT 0,6") ;

while($resultat = mysql_fetch_array($select))
{
print "<a href='../partenaires/sortie.php?id=$resultat[id]' target='_blank'><font face='Arial' size=1,5 style='text-decoration: none'>".$resultat[nomsite]."</a></br>";
}
?>


Puis en dessous des cette include, j'ai mis l'include qui ferme la base :


Code:
<?php mysql_close($conn); ?>


Est ce que la syntaxe est correcte ?
Merci
++

Titre: Re:suggestion connection base mysql
Posté par: vertigo_76 le le 06-06-2006 a 16:15:56

Pourrais tu mettre le message d'erreur STP.

vertigo

Titre: Re:suggestion connection base mysql
Posté par: GoldRazor le le 09-06-2006 a 01:04:05

voici l'erreur :

Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home.3/promocli/www/include_partenaire.php on line 3

Warning: mysql_query(): A link to the server could not be established in /home.3/promocli/www/include_partenaire.php on line 3

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.3/promocli/www/include_partenaire.php on line 5

Donc ca montre bien que la requete ne peut pas se connecter a la base. Et pourtant dans le index , j'ai fait un include config.php

:/

Titre: Re:suggestion connection base mysql
Posté par: pagepremiere le le 10-06-2006 a 19:18:06

JE te conseil d'utiliser des identifiant se referant a la connection bdd pour eviter les problemes... ce que tu fais actuellement c'est que tu prend la connection courante. Essaye avec cette methode :

if(!$IdLien = @Mysql_Connect($bdd_hote,$bdd_user,$bdd_pass)) $ErreurNum = 1000;
if(!@Mysql_Select_DB($bdd_base,$IdLien)) $ErreurNum = 1001;

$R = @MySQL_Query("SELECT * FROM mp_site_page WHERE (user_id=$UserID) ORDER BY page_pos ASC",$IdLien);

@MySQL_Num_Rows($R);

etc....

Les liens vont peut etre resoudre tes problemes et te permettront de meilleurs tests pour ta connection.

Titre: Re:suggestion connection base mysql
Posté par: erwinol le le 11-06-2006 a 13:44:13

Si il plante lors du mysql_query, c'est que la connexion s'est bien déroulée.

Essaye en mettant l'identifiant de connexion dans ton mysql_query (2ème paramètre).


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.