probleme de connexion avec ma class

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de connexion avec ma class

par mojorisin » 02 janv. 2007, 19:00

Salut,
le fichier inclus est appelé relativement par rapport au fichier qui instancie ta classe.
Modifie plutôt ta classe comme suis :
public function __construct($host,$user,$pass,$database)
{
    
    $this->host = $host;
    $this->user = $user;
    $this->password = $pass;
    $this->database = $database;
    
    
    if(!$this->conId=mysql_connect($this->host,$this->user,$this->password))
    {
        throw new
        Exception('Error connecting to the server');

    }
    else
        echo "connected to th server";// juste pour test  , a enlever apres.

    if(!mysql_select_db($this->database,$this->conId))
    {

        throw new
        Exception('Error selecting database');

     }

}// fin construc 
Et avant d'instancier ta classe tu inclu ton fichier de configuration :
<?php
include('config.php');
$adata = new mysql($host,$user,$pass,$database); 
?>

par damaskinos » 02 janv. 2007, 18:58

J'ai fais quelque modif et ça fonctionne. J'ai fais mon include de config.php juste avant de creer mon instance de la class mysql.
<?php

include 'class/mysql.class.php';
include_once "class/config.php";

$adata = new mysql($host,$user,$pass,$database);
?>
et j ai modifie mon costructeur comme ceci :
<?php

class MySQL{

			private $conId;

            private $host;

            private $user;

            private $password;

            private $database;

            private $result;

public function __construct($host,$user,$pass,$database)
{
	
	$this->host = $host;
	$this->user = $user;
	$this->password = $pass;
	$this->database = $database;
	
	
	if(!$this->conId=mysql_connect($this->host,$this->user,$this->password))
	{
		throw new
		Exception('Error connecting to the server');

    }
	else
		echo "connected to th server";// juste pour test  , a enlever apres.

    if(!mysql_select_db($this->database,$this->conId))
	{

        throw new
		Exception('Error selecting database');

     }

}// fin construc

public function __destruct()
{
	mysql_close();
}


public function query($query)
{
	if(!$this->result=mysql_query($query,$this->conId))
	{
		throw new
		Exception('Error performing query '.$query);

    }

    return $this->result;

}// end function query

}// end class
?>

La ça marche mais j'aimerai quand même avoir votre avis sur ma class est-ce une bonne façon de procéder ?

probleme de connexion avec ma class

par damaskinos » 02 janv. 2007, 18:38

Bonjour j'aimerai avant tout vous souhaiter à tous une bonne et heureuse année 2007.

Bon le but du sujet. J'ai une class appelé mysql qui est comme suit :
<?php

class MySQL{

			private $conId;

            private $host;

            private $user;

            private $password;

            private $database;

            private $result;

public function __construct()
{
    include_once "config.php";
	
	$this->host = $host;
	$this->user = $user;
	$this->password = $pass;
	$this->database = $database;
	
	
	if(!$this->conId=mysql_connect($this->host,$this->user,$this->password))
	{
		throw new
		Exception('Error connecting to the server');

    }
	else
		echo "connected to th server";// juste pour test  , a enlever apres.

    if(!mysql_select_db($this->database,$this->conId))
	{

        throw new
		Exception('Error selecting database');

     }

}// fin construc

public function __destruct()
{
	mysql_close();
}


public function query($query)
{
	if(!$this->result=mysql_query($query,$this->conId))
	{
		throw new
		Exception('Error performing query '.$query);

    }

    return $this->result;

}// end function query

}// end class
?>

Et un autre fichier nommé config.php. Voila le contenu:
<?php

$host = "****";
$user = "****";
$pass = "*****";
$database = "****";

?>

quand je crée une instance de ma class
$adata = new mysql();
J'ai une erreur :
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Apache\xampp\htdocs\adata\class\mysql.class.php on line 27
Quand je fais un echo
echo "$host,$user,$password";
juste en dessous du include_once et c'est vide. De plus j'ai bien savoir si c'est bien de procéder ainsi.

Merci pour tout.