Warning: MySQL: Too many open links (1) [MySQL] - Programmation
Marsh Posté le 26-11-2001 à 23:44:50
à mon avis t'as déjà une autre connection d'ouverte et ton serveur n'en accepte qu'une à la fois...
pour plus de détails sur le nombre max de connections, phpinfo() et les caractéristiques de l'hébergement merci
Marsh Posté le 27-11-2001 à 15:17:50
Il faut faire aussi bien gaffe de bien fermer la connection avec mysql_close(), sans attendre le timeout. "Too Many connection open" n'est pas normal lorsque uniquement une personne se sert du script.
Marsh Posté le 27-11-2001 à 15:59:26
la connection ne se ferme pas d'elle meme a la fin d'execution d'une page?
Marsh Posté le 27-11-2001 à 16:45:12
si c'est pour ça que ça vient forcément d'une double ouverture ou d'un pb de conf, et pa
Marsh Posté le 27-11-2001 à 16:45:13
si c'est pour ça que ça vient forcément d'une double ouverture ou d'un pb de conf, et pas d'un oubli de fermeture...
[edtdd]--Message édité par Sh@rdar--[/edtdd]
Marsh Posté le 27-11-2001 à 17:01:52
sauf si il y a une boucle mal placée, genre qui ouvre une connection à chaque requete ....
Marsh Posté le 27-11-2001 à 17:22:44
faut eviter les requette imbriqué et preferer les jointures
"requette imbriqué: ou comment mettre un quadri-xeon a plat!"
[edtdd]--Message édité par speedyop--[/edtdd]
Marsh Posté le 27-11-2001 à 20:49:38
speedyop a écrit a écrit : faut eviter les requette imbriqué et preferer les jointures "requette imbriqué: ou comment mettre un quadri-xeon a plat!" |
Pourrais-tu donner un exemple de requette imbriquée et de jointure pour voir la différence.
Merci.
Marsh Posté le 27-11-2001 à 20:52:41
Je viens de regarder et voici la ligne qui fais défaut :
$connecte = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Connexion impossible<br>" );
donc, il faut que je m'arrange à ce qu'il y est qu'une seule connection pour tous.
Marsh Posté le 27-11-2001 à 21:27:37
ben faut pas faire ca, vaut mieux ouvrir la connection a la base en ahut de page (la plus part du temps dans un lib.inc inclut pour faire propre)
mysql_connect("host","user","pseudo" );
mysql_select_db("mabase" );
ensuite tu touche plus a ca
tu fait tes requettes normalement
$query = "select * from matable";
if ($result=mysql_query($query))
{
if ($mysql_num_rows($result)>0)
{
$myreponse=mysql_fetch_array($result);
}
else
{
$myerror = "pas de d'enregistrement";
}
}
else
{
$myerror = "erreur de requette";
}
et fin de page la connection a la base est fermée toute seule, je trouve que c'est une bonne methode d'execution de requette, si klk'1 en preferre une autre...
[edtdd]--Message édité par speedyop--[/edtdd]
Marsh Posté le 27-11-2001 à 21:30:06
C'est ce que je viens de faire, mais j'ai des autres erreurs maintenant...
Warning: Supplied argument is not a valid MySQL result resource in /home5/eq15000/html/recherche/search.php on line 136
Voici les lignes 134 a 139
$query="SELECT keywords.key_id FROM keywords WHERE keywords.keyword like '$mots[$x]'";
$searchmot=mysql_db_query($base,$query);
$keyword=mysql_fetch_row($searchmot);
$mots[$x]=$keyword[0];//on remplace le mot clef par son id
$motstotal=$nombremots;
while ($keyword=mysql_fetch_row($searchmot))
Marsh Posté le 27-11-2001 à 21:34:35
ca doit etre ta requette qui ne marche pas , pour debuguer je te conseille de faire un
echo "<B>".$query."</B><BR>";
juste apres avoir poser ta requette
et de copier coller tout ca dans un query ananlyser (j'adore mysqlfront perso, mais phpmyadmin fera l'affaire a default)
Marsh Posté le 27-11-2001 à 21:51:46
J'ai mis donc la ligne
echo "<B>".$query."</B><BR>";
et la requette est bonne mais je n'ai pas compris ce qu'il fallais faire avec phpmyadmin...
Marsh Posté le 27-11-2001 à 21:53:53
bah tu colle tout ca dans "executer une ou des requette" a l'accueil de base
Marsh Posté le 27-11-2001 à 22:12:22
Je viens de résoudre le prob !
J'ai remplacer les mysql_db_query par mysql_query
$searchmot=mysql_db_query($base,$query);
par
$searchmot=mysql_query($query);
Trops cool !
Merci a tous !
Marsh Posté le 27-11-2001 à 22:13:18
si ca c bien passer... hum... ca veut dire que c'est la ligne 135 qui est pas bonne...
t'utilise plusieur base pour utiliser mysql_db_query?
si t'en a qu'une tu peut faire
mysql_select_db("mabase" );
puis utiliser un simple mysql__query($query); pour voir
Marsh Posté le 27-11-2001 à 22:26:25
Ptite question, il faut obligatoirement mysql_close() en fin de page ?
Marsh Posté le 27-11-2001 à 22:30:55
non les connection sont fermé automatiquement en fin de page (a part dans le cas d'une connectin persistente (jamais rencontré le cas))
Marsh Posté le 26-11-2001 à 22:45:40
Salut !
J'ai ce message d'erreur qui apparais quand je lance une recherche avec mon moteur interne !
Kezaco ?