cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010
-
1 févr. 2007 à 01:26
cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010
-
5 févr. 2007 à 23:13
Bonsoir,
Je me prends (un peu) la tête sur une de mes classes... en fait c'est ma classe de bdd.
Tout ce qui est connexion, selection et requête, pas de problème. Gestion des erreurs pas de problème.
Mais dès qu'il s'agit de faire un fetch_array... Le serveur me renvoie un warning: ...argument is not a valid ...
Le problème est que j'ai testé en créant une page faisant mysql_connect > select_db > query puis fetch_array et la ça passe. Je ne comprends pas... Il y a surement une variable mal définie... Alors je vous livre mon code tel quel des fois que quelqu'un aurait une idée de génie.
## Paramètres de connexion
private $u = ''; # Utilisateur
private $p = ''; # Mot de passe
private $b = ''; # Base
private $h = ''; # Hote
## Paramètres internes
private $connx = ''; # L'identification de connexion
public $sql = array(); # Liste des requêtes effectuées sur la session
public $bench = array(); # Liste les benchs effectués sur les requêtes
private $compte = ''; # Compte le nombre de requêtes
public $resultat = ''; # Le résultat de la requête
## Messages d'erreur
private $_message = array(
'CANT_CONNECT'
=> 'Impossible de se connecter à « %s ». Le serveur renvoie l\'erreur suivante :
[%s] %s',
'CANT_CLOSE'
=> 'Impossible de fermer la connexion à « %s ». Le serveur renvoie l\'erreur suivante :
[%s] %s',
'CANT_SELECT_DB'
=> 'Impossible de sélectionner la base « %s ». Le serveur renvoie l\'erreur suivante :
[%s] %s',
'ERROR_QUERY'
=> 'Erreur lors de l\'éxécution de la requête #%s dont le texte est le suivant :
« %s ».
Le serveur renvoie l\'erreur suivante :
[%s] %s',
## Constructeur de la classe
# Initialise la classe
# Masque les erreurs E_WARNING (Gérées à travers les exceptions)
# Lance la connexion
# Sélectionne la base
public function __construct()
{
global $variables;
$this -> u = '';
$this -> p = '';
$this -> b = '';
$this -> h = '';
## Lance une requête à la base de données <==> mysql_query
public function query($sql)
{
$bench = microtime(true);
try
{
$this -> compte = count( $this -> sql) + 1;
$this -> sql[ $this -> compte ] = $sql;
if( $this -> resultat mysql_query($this -> sql[ $this -> compte ], $this -> connx) FALSE )
{
$message = sprintf($this -> _message['ERROR_QUERY'], $this -> compte, $this -> sql[ $this -> compte ], mysql_errno(), mysql_error());
throw new exception($message);
}
else
{
if(isset($this -> resultat) && is_resource($this -> resultat))
{
$this -> bench[ $this -> compte ] = microtime(true) - $bench;
echo $this->resultat;
return $this -> resultat;
}
else
{
$message = sprintf($this -> _message['ERROR_QUERY_RES'], $this -> compte, $this -> sql[ $this -> compte ], mysql_errno(), mysql_error());
throw new exception($message);
}
}
}
catch(Exception $e)
{
die(xhtml::_error('ERREUR :: Bdd', 'pages/styles.css', $e->getmessage()));
}
}
## Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
public function fetch_array()
{
return mysql_fetch_array( $this -> resultat);
}
}
?>
PS. Je sais que pour la portabilité de mon code, je devrais faire une abstraction de ma classe mais vu que pour l'instant ya bug on verra plus tard :)
PPS. Merci d'avance
A voir également:
Uncaught error: call to undefined function mysql_fetch_array() in
cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010 5 févr. 2007 à 10:45
Lol
Ok je vais tester avec _assoc mais je suis pas sur que ce soit la qu'est le probléme... c'est plutôt comme si, lors de mon query, this->resultat n'enregistrait rien, je sais pas comment l'expliquer.
Flo
Vous n’avez pas trouvé la réponse que vous recherchez ?