Mammouth du PHP |
965 Messages
19 sept. 2008, 12:10
Bonjour,
alors, plusieurs remarques :
1/ visiblement, l'erreur signifie que tu atteinds un "out of memory", donc que tu ouvres trop de connexion simultanée
2/ Quel est le code de connexion de DbQuery() ?
3/ A quel volume est ce que tu crées tes User ?
Oui il ya bien un problème de mémoire, pour les connexion simultanées je viens de rajouter un destructeur sur ma classe DbQuery qui est comme ceci :
<?php
/**************************************************
* Classe des requetes sql :
*
* Mode pré-production : Affiche les erreurs
*
* Mode production : Ne pas afficher les erreurs
**************************************************/
class DbQuery extends mysqli {
// Onlan
protected $Config = array(
'host' => 'localhost',
'user' => 'root',
'pass' => '****',
'dbname' => 'gft_loc'
);
protected $connexion;
protected $DisplayError = true;
// Connection a la bdd
public function __construct() {
$this->connexion = @parent::__construct($this->Config['host'],
$this->Config['user'],
$this->Config['pass'],
$this->Config['dbname']);
// Mode pré-prod
// Retirer mysql_connect_error() en prod
if(mysqli_connect_errno())
{
if($this->DisplayError)
{
echo "<b>- Impossible de se connecter a la base de donnée : ".mysqli_connect_error()."</b><br />";
exit();
}
else
{
echo "<div id="sqlError">Le site n'est pas accessible pour le momemnt.</div>";
exit();
}
}
$this->set_charset("utf8");
return $this->connexion;
mysql_query('SELECT @pwdkey:="*****"');
}
// Fonction requete select sur la bdd
public function ReqQuery($req)
{
if(empty($req))
{
$this->displayError(true);
}
else
{
if(!$reponse = parent::query($req))
{
$this->displayError(true);
}else{
return $reponse;
}
}
}
protected function displayError($displayError)
{
if($displayError)
{
echo "<div id="sqlError"><b>Erreur sql n°".$this->errno." :</b> ".$this->error." <br /><br /> ".$req."<br /><br /></div>";
}
else
{
echo "<center><b>Une erreur est survenue sur cette page.</b><br /><br /><a href="#" onclick="javascript:history.back()" ">Retour</a></center>";
exit();
}
}
// Fonction requete fetch_array sur la bdd
public function ArrayQuery($req) {
if(!empty($req))
{
if(!$reponse = $req->fetch_array())
{
if($this->DisplayError)
{
echo "<b>Erreur sql n°".$this->errno." :</b> ".$this->error." <br /><br />";
}
}else{
return $reponse;
}
}
}
public function __destruct()
{
parent::close())
}
}
?>
Quant a la 3ème question je ne comprends pas, à quel volume ?
Modifié en dernier par
agité le 19 sept. 2008, 12:16, modifié 1 fois.