IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probleme de connection à la base


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut probleme de connection à la base
    bonjour,
    j'obtient cet erreur quand j'essaie de se connecter à une base postgres

    Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not translate host name "port=" to address: Unknown host in C:\wamp\www\serializer.php on line 46

    Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in C:\wamp\www\serializer.php on line 129

    Warning: pg_last_error(): supplied argument is not a valid PostgreSQL link resource in C:\wamp\www\serializer.php on line 77

    le fichier serializer.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    <?php
    /*
    * Class for parsing XML file
    * Version  18-01-2010
    */
    class Serializer
    {
    	// Variable for XML object
    	var $urlXML;
    	var $host;
    	var $username;
    	var $password;
    	var $port;
    	var $dbname;
    	var $error = null;
        var $dbconnect;
        var $query;
        var $result;
        var $persistent;
     
     
     
     
    	//Constructor
    	public function Serializer($Db="mabase",$Host="127.0.0.1",$PgPort=5432,$User="postgres",$pass="admin",$persist=0)
    	{
     
    			$this->dbname=$Db;
    			$this->host=$Host;
    			$this->port=$PgPort;
                $this->username=$User;
                $this->password=$pass;
                $this->persistent=$persist;
                $this->Connect(); 
    	}
     
    	//method for connecting into the database
    	public function Connect ()
        {
                $connect="host=".$this->host." port=".$this->port." dbname=".$this->dbname." user=".$this->username;
                if (!empty($this->password))
                    $connect.=" password=".$this->password;
                if ($this->persistent)
                    $this->dbconnect=pg_pconnect($connect);
                else
                    $this->dbconnect=pg_connect($connect);
                if (!$this->dbconnect)
                    $this->error="cannot connect to database ".$this->dbname;
        }
     
     
        public function ExecuteQuery($sql)
        {
        	$this->query = new Query($sql,$this->dbconnect);
        	$this->result = $this->query->Execute();
        	$this->error = $this->query->Error();
        	return $this->result;
        }
     
     	public function FetchResult (&$row, $assoc=PGSQL_BOTH)
        {
                if (!$this->error)
                {
                     @$arr=pg_fetch_array ($this->result, $row, $assoc);
                     return $arr;
                }
                else
                {
                    echo "An error occured, $this->error";
                    return null;
                }
        }
     
        public function Error ()
        {
                if (version_compare(phpversion(), "4.2.0", "ge")>0)
                    $this->error=pg_last_error ($this->dbconnect);
                return $this->error;
       }
     
    	//Methode for parsin the element
    	public function parser($urlXMLtoparse)
    	{
    		//Passed the urlXML to the object
    		$this->urlXML = $urlXMLtoparse;
     
    		//Charging data of the XML
    		$xml = simplexml_load_file($this->urlXML);
     
    		// if xml charger
    		if($xml)
    		{
    			// for debugging
    			/*echo "<table border='1'>";
    			
    			foreach($xml as $valeur)
    			{
    				echo "<tr>";
    				foreach($valeur as $cle=>$val)
    				{
    					echo "<td>".$val."</td>";
    				}
    				echo "</tr>";
    			}
    			
    			echo "</table>";*/
    			return $xml;
    		}
    	}
     
    }
     
    class Query
    {
    	var $_sql;
    	var $_result;
    	var $_field;
    	var $_dbconnection;
    	var $_error;
     
    	public function Query($sql,$dbconnection)
    	{
    		$this->_sql = $sql;
    		$this->_dbconnection = $dbconnection;	
    	}
     
    	public function Execute()
    	{
    		$this->_result = pg_query($this->_dbconnection,$this->_sql);
    		$this->_error = pg_result_error($this->_result);
    		return $this->_result;
    	}
     
        public function Error()
        {
                return $this->_error;
        }
     
    }
    ?>

    et l'autre fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    require_once("serializer.php");
    $parseur = new Serializer($dbname,$host,$port,$username,$password,$persistent);
    $retourParser = $parseur->parser("monfichier.xml");
     
    //la requete sql 
    $sql = "select * from clients";
    if(!$parseur->ExecuteQuery($sql))
    {
    	 die ($parseur->Error());
    }
    for ($row=0; $result=$parseur->FetchResult($row, PGSQL_BOTH); $row++)
    {
        echo $result['firstname'];
    }

    Le but ici c'est de pouvoir sauvegarder dans la base les info parser du fichier xml
    si vous avez une idée
    merci

  2. #2
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut
    jai modifier une ligne dans la class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //method for connecting into the database
    	public function Connect ()
        {
                $connect="host='".$this->host."' port='".$this->port."' dbname='".$this->dbname."' user='".$this->username."'";
                if (!empty($this->password))
                    $connect.=" password=".$this->password;
                if ($this->persistent)
                    $this->dbconnect=pg_pconnect($connect);
                else
                    $this->dbconnect=pg_connect($connect);
                if (!$this->dbconnect)
                    $this->error="cannot connect to database ".$this->dbname;
        }
    et voila le nouvel erreur retourné

    Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: aucun nom d'utilisateur PostgreSQL n'a été spécifié dans le paquet de démarrage in C:\wamp\www\evostreamclass\serializer.php on line 46

    Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in C:\wamp\www\evostreamclass\serializer.php on line 129

    Warning: pg_last_error(): supplied argument is not a valid PostgreSQL link resource in C:\wamp\www\evostreamclass\serializer.php on line 77

  3. #3
    Membre habitué Avatar de Shinji62
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 135
    Points : 150
    Points
    150
    Par défaut
    T'y accedes sans passer par PHP? en local ? psql?

  4. #4
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut
    j'ai installé en local postgresql 8.4

    j'ai mis en place aussi phpgadmin pour une interface convivial comme phpmyadmin

    voilà

    et je voudrai y acceder à partir de ce script qui me retourne ces erreurs

    donc pour ta question c'est en local je pense par ce script php

    j'espere que jai bien repondu la question


    merci davance

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Je crois que la question était de savoir si tu arrivais à utiliser phpPgAdmin correctement ?

    Je rajoute: (puisque je bosse sur Postgres): Quand tu te connectes sur le nom de ta base + user, c ok ?

    Avec les : $User="postgres",$pass="admin"
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Membre régulier Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Points : 122
    Points
    122
    Par défaut
    bonjour,

    le probleme se trouvait au niveau de la manière dont jai ecrit ma classe
    toutes les variables de connections à la base étaient vides

    j'ai du le modifier comme suis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    class Serializer
    {
        // Variable for XML object
        var $urlXML;
        var $host;
        var $username;
        var $password;
        var $port;
        var $dbname;
        var $error = null;
        var $dbconnect;
        var $query;
        var $result;
        var $persistent;
     
        //Constructor
        public function __construct()
        {
                $this->Connect(); 
        }
     
        //method for connecting into the database
        public function Connect ($Db="mabase",$Host="127.0.0.1",$PgPort=5432,$User="postgres",$pass="admin",$persist=0)
        {
            // Passed the variable to objet
            $this->dbname=$Db;
            $this->host=$Host;
            $this->port=$PgPort;
            $this->username=$User;
            $this->password=$pass;
            $this->persistent=$persist;
     
            $connect="host='".$this->host."' port='".$this->port."' dbname='".$this->dbname."' user='".$this->username."'";
     
            // if password is not empty
            if (!empty($this->password))
            {
                      $connect.=" password=".$this->password;
            }  
     
            //Connection persistent
            if ($this->persistent)
            {
                    $this->dbconnect=pg_pconnect($connect);
            }else{
                    $this->dbconnect=pg_connect($connect);
            }        
     
            //if not connected
            if (!$this->dbconnect)
            {
                    $this->error="cannot connect to database ".$this->dbname;
            }        
        }
    ça a marché

    merci quand même et bonne année 2010

Discussions similaires

  1. probleme de connection au base donnees SQL
    Par azerty303 dans le forum JDBC
    Réponses: 5
    Dernier message: 16/06/2008, 15h04
  2. Probleme de connection au base de données
    Par yayamo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 31/01/2007, 10h51
  3. Probleme de connection au base de données
    Par yayamo dans le forum Installation
    Réponses: 1
    Dernier message: 29/01/2007, 17h11
  4. [MYSQL] Probleme de connection à la base
    Par As_2_piK dans le forum Bases de données
    Réponses: 1
    Dernier message: 03/04/2006, 08h53
  5. Réponses: 10
    Dernier message: 16/03/2005, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo