Correction du classement #13
@ -3,74 +3,74 @@
|
||||
class BDD
|
||||
{
|
||||
public $connected;
|
||||
|
||||
|
||||
private $session;
|
||||
|
||||
|
||||
private $reponse;
|
||||
|
||||
|
||||
public $host;
|
||||
|
||||
|
||||
public $user;
|
||||
|
||||
|
||||
private $password;
|
||||
|
||||
|
||||
public $database;
|
||||
|
||||
|
||||
public $num_rows;
|
||||
|
||||
|
||||
public $nodb;
|
||||
|
||||
|
||||
|
||||
|
||||
public function __construct($profile=null)
|
||||
{
|
||||
if ($profile === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
global $db_config;
|
||||
|
||||
|
||||
if (empty($profile)) {
|
||||
if (!$db_config['profile']) {
|
||||
return false;
|
||||
}
|
||||
$profile = &$db_config['profile'];
|
||||
}
|
||||
|
||||
|
||||
if (!ctype_alnum($profile)) {
|
||||
trigger_error('Le nom du profil contient des caracteres illegaux', E_USER_ERROR);
|
||||
}
|
||||
|
||||
|
||||
if ($db_config['profile']) {
|
||||
require(ONYX.'db/'.$profile.'.profile.php');
|
||||
|
||||
|
||||
$db = &$___profile['db'];
|
||||
$host = &$___profile['host'];
|
||||
$user = &$___profile['user'];
|
||||
$pass = &$___profile['pass'];
|
||||
}
|
||||
|
||||
|
||||
if ($db_config['crypt']) {
|
||||
$pass = dbpass($pass, $db_config['crypt']);
|
||||
}
|
||||
|
||||
|
||||
return $this->connexion($host, $user, $pass, $db);
|
||||
}
|
||||
|
||||
|
||||
public function connexion($host, $user, $pass, $db=null)
|
||||
{
|
||||
if ($this->session) {
|
||||
$this->deconnexion();
|
||||
}
|
||||
|
||||
|
||||
$this->reponse = null;
|
||||
|
||||
|
||||
$host = pg_escape_string($host);
|
||||
$user = pg_escape_string($user);
|
||||
$pass = pg_escape_string($pass);
|
||||
$db = pg_escape_string($db);
|
||||
|
||||
|
||||
$this->session = pg_connect("host='$host' port=5432 dbname='$db' user='$user' password='$pass'");
|
||||
|
||||
|
||||
if (!$this->session) {
|
||||
elog('Connexion impossible a la base de donnee : '.$this->erreur(), 2);
|
||||
if (function_exists($this->nodb)) {
|
||||
@ -78,54 +78,54 @@ class BDD
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
pg_setclientencoding($this->session, 'UTF8');
|
||||
|
||||
|
||||
$this->host = $host;
|
||||
$this->user = $user;
|
||||
$this->password = $pass;
|
||||
$this->database = $db;
|
||||
|
||||
|
||||
$this->connected = true;
|
||||
}
|
||||
|
||||
|
||||
public function reconnexion()
|
||||
{
|
||||
if (!empty($this->host) && !empty($this->user) && !empty($this->password) && !empty($this->database)) {
|
||||
$this->connexion($this->host, $this->user, $this->password, $this->database);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function deconnexion()
|
||||
{
|
||||
if (!$this->session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$r = pg_close($this->session);
|
||||
$this->session = false;
|
||||
$this->connected = false;
|
||||
return $r;
|
||||
}
|
||||
|
||||
|
||||
public function erreur()
|
||||
{
|
||||
if (!$this->session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return pg_last_error($this->session);
|
||||
}
|
||||
|
||||
|
||||
public function db($db)
|
||||
{
|
||||
if (!$this->session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return $this->database = pg_query($this->session, "\\connect ".pg_escape_string($db)) ? $db : $this->database;
|
||||
}
|
||||
|
||||
|
||||
public function escape(&$var)
|
||||
{
|
||||
if (!$this->session) {
|
||||
@ -134,23 +134,23 @@ class BDD
|
||||
$var = pg_escape_string($this->session, $var);
|
||||
return $var;
|
||||
}
|
||||
|
||||
|
||||
public function query($query)
|
||||
{
|
||||
if (!$this->session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$this->reponse = pg_query($this->session, $query);
|
||||
|
||||
|
||||
global $db_config;
|
||||
|
||||
|
||||
if (!$this->reponse && $db_config['log']) {
|
||||
elog('Erreur PostgreSQL: " '.$this->erreur().' ", avec la requète: { '.$query.' }.', 1);
|
||||
}
|
||||
|
||||
|
||||
$this->num_rows = pg_num_rows($this->reponse);
|
||||
|
||||
|
||||
if ($this->num_rows == 0) {
|
||||
return null;
|
||||
} elseif ($this->num_rows >= 1) {
|
||||
@ -162,23 +162,23 @@ class BDD
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function unique_query($query)
|
||||
{
|
||||
if (!$this->session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$this->reponse = pg_query($this->session, $query);
|
||||
|
||||
|
||||
global $db_config;
|
||||
|
||||
|
||||
if (!$this->reponse && $db_config['log']) {
|
||||
elog('Erreur PostgreSQL: " '.$this->erreur().' ", avec la requète: { '.$query.' }.', 1);
|
||||
}
|
||||
|
||||
|
||||
$this->num_rows = pg_num_rows($this->reponse);
|
||||
|
||||
|
||||
if ($this->num_rows == 0) {
|
||||
return null;
|
||||
} elseif ($this->num_rows >= 1) {
|
||||
@ -187,13 +187,13 @@ class BDD
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function affected()
|
||||
{
|
||||
if (!$this->session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return pg_affected_rows($this->reponse);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user