Correction du classement #13

Merged
nemunaire merged 4 commits from fix/classement into master 2021-01-01 20:07:03 +00:00
Showing only changes of commit 52e99ddea8 - Show all commits

View File

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