Source for file class.pgsql.php
Documentation is available at class.pgsql.php
* @author linea21 <info@linea21.com>
* @license http://opensource.org/licenses/gpl-3.0.html
* pgSQL data manipulation
* Initialisation de la connexion
* @param string $user : utilisateur base de données
* @param string $pass : password utilisateur base de données
* @param string $serveur : serveur de base de données
* @param string $bdd : nom de la base de données
function DBInitialise($user = '', $pass = '', $serveur = '', $bdd = '')
* connexion Base de données
or die($this->DBError($GLOBALS['lang']['divers']['db_connect_failed']));
* Gestion des erreurs MySQL
* @param string $message_err : message retourné par la requête
* @param string $requete : requête provoquant l'erreur
function DBError($message_err, $requete = - 1)
//pg_set_error_verbosity($this->DB_LINK, PGSQL_ERRORS_VERBOSE);
$erreur = $message_err . "<br />[<em> PostgreSQL error (pg_result_error): " . @pg_result_error($res1). "<br />";
$erreur.= "(pg_last_error): " . @pg_last_error() . "</em> ]<br />\n";
$this->_logDbError($requete);
$erreur .= "$requete<br />\n";
$date = date("[D d/M/y H:i:s]<br />\n");
$erreur .= "running script :" . $_SERVER["SCRIPT_NAME"] . getHttpParameters() . "<br />";
if(defined('MOD_DEBUG') && MOD_DEBUG == true) {
* Insertion de données dans la BDD
* @param string $requete : requête SQL
* @param string $returnid : Si $returnid==1 ==> renvoie last_id()
* @return integer || boolean : $result last_id()
function DBInsert ($requete, $returnid = - 1)
// Si returnid=1 on renvoie l'id de l'enregistrement
// A utiliser uniquement si attribut auto_increment
if ($returnid == 1) return $this->_DBgetInsertId($requete);
* Echappement des variables
* @param string $array : données
foreach ($array as $key => $value) {
$final_array[$key] = $value;
* pgsql::_DBgetInsertId()
* Insertion de données dans la BDD
* @param string $requete : requête SQL
function _DBgetInsertId ($requete)
if (!($res = $this->DBQuery("SELECT * FROM " . $tablename . " LIMIT 1;"))) return false;
$seq = $tablename. '_' . $id_name . '_seq';
$res = $this->DBSelect("SELECT currval('" . $seq . "');");
return $res[0]['currval'];
* effectue une requête en tous genres -UPDATE - DELETE - SELECT
* @param string $requete : requête SQL
* @return boolean : $result
if(defined('MOD_DEBUG') && MOD_DEBUG == true) {
$this->_logDbQuery($requete);
$this->RESULT = pg_query($this->DB_LINK, $requete) or die($this->DbError($GLOBALS['lang']['divers']['sql_query_failed'], $requete));
* @param string $requete : requête SQL
* @param string $fetch : renvoie des données, valeur ASSOC (default), ARRAY, OBJECT
* @return array : $result
function DBSelect ($requete, $fetch = 'ASSOC')
if(defined('MOD_DEBUG') && MOD_DEBUG == true) {
$this->_logDbQuery($requete);
if ($fetch == 'OBJECT') {
if (!isset ($table)) $table = 0;
* Retourne le nombre d'enregistrements affecté par la dernière requête
$fp = @fopen(LOG_SQL_QUERIES, 'a');
@fwrite($fp, date('[d-m-y H:i:s]' . $sep)); // date
$fp = @fopen(LOG_SQL_ERRORS, 'a');
@fwrite($fp, date('[d-m-y H:i:s]' . $sep)); // date
* Retourne le nombre d'enregistrements affecté par la dernière requête
|