par hika - 2005-01-30 21:20:20
crée le 2004-09-16 12:58:16

pgsql.php


<?php
/*
  PostgreSQL - Class connect.
  Copyright (c) 2002,2003 Gilbert Cao (hika)
  All rights reserved.

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

/*************************************
Classe de connexion à la base PostgreSQL
*************************************/
Class Connect {

  private 
$host;
  private 
$user;
  private 
$pwd;
  private 
$db;
  private 
$id;

  function 
Connect($host$user$pwd$db) {
  
/*****************
   Constructeur
  *****************/

    
$this->host $host;
    
$this->user $user;
    
$this->pwd $pwd;
    
$this->db $db;

    
$this->id pg_connect((!is_null($this->host) ? "host=".$this->host." port=5432 " "") . "user=".$this->user." password=".$this->pwd." dbname=".$db);
    if (
$this->id)
      return 
true;
    return 
false;
  }

  function 
QueryDB($query) {
  
/******************************************************
  Spécif : Effectue la requête et retourne un resultset
  Param  : $query, la requête SQL
  *******************************************************/
    
$result pg_query($this->id$query);
    if (
$result)
      return 
$result;
    return 
false;
  }

  function 
CountDB($query) {
  
/******************************************************
  Spécif : Récupère le nombre de lignes d'une requête
  Param  : $query, la requête
  ******************************************************/
    
$result $this->QueryDB($query);
    if (
$result)
      return 
pg_num_rows($result);
    else
      return 
false;
  }
  
  function 
CountRowsDB($result) {
  
/******************************************************
  Spécif : Récupère le nombre de lignes d'un resultset
  Param  : $result, le resultset
  ******************************************************/
    
if ($result)
      return 
pg_num_rows($result);
    else
      return 
false;
  }

  function 
CountFieldsDB($result) {
  
/******************************************************
  Spécif : Récupère le nombre de colonnes d'un resultset
  Param  : $result, le resultset
  ******************************************************/
    
if ($result)
      return 
pg_num_fields($result);
    else
      return 
false;
  }

  function 
LastIndexDB($column$table$predicat="") {
    
$SQL "SELECT max(".$column.") as maxval
      FROM "
.$table."
      "
.$predicat.";";
    
$result pg_query($this->id$SQL);

    return 
pg_fetch_result($result0"maxval");
  }

  function 
SeekDB($result$num_ligne) {
  
/*****************************************************
  Spécif : Positionne le resultset à la ligne indiquée
  Param  : $result, le resultset
           $num_ligne, le numéro de ligne
  *****************************************************/
    
if ($this->CountRowsDB($result) <= $num_ligne)
      return 
false;
    return 
pg_result_seek($result$num_ligne);
  }

  function 
CursorDB($result) {
  
/*******************************************
  Spécif : Récupère une ligne d'un resultset
           et retourne la ligne dans un vecteur
  Param  : $result, le resultset
  *******************************************/
    
if ($result) {
      
$cur pg_fetch_array($result);
      if (
$cur)
        return 
$cur;
      return 
false;
    }
    else
      return 
false;
  }
  
  function 
FreeDB($result) {
  
/*******************************************
  Spécif : Libère la mémoire
  Param  : $result, le resultset
  *******************************************/
    
if ($result)
      return 
pg_free_result($result);
    else
      return 
false;
  }
  
  function 
FieldsDB($result) {
  
/*******************************************
  Spécif : Récupère un nom de colonne d'un resultset
           et retourne les infos de colonne dans un objet
  Param  : $result, le resultset
  *******************************************/
    
echo "Warning ! Connect.FieldsDB() not yet implemented for PostgreSQL !<br />";
    return 
false;
  }

  function 
Disconnect() {
  
/*********************
  Déconnexion
  "Destructeur"
  *********************/
    
@pg_close($this->id);
  }

}
/* Connect */
/************************************/
?>

par hika - 2005-01-30 21:20:20
crée le 2004-09-16 12:58:16

FreeBSD Mall Smarty Template Engine Page générée le Mardi 18 Novembre 2008 22:38:55 Powered by FreeBSD
POWERED BY FreeBSD, Apache, PHP, PostgreSQL, Code & design by Hika
BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.