Code Duplication    Length = 135-135 lines in 2 locations

core/Database.class.php 1 location

@@ 7-141 (lines=135) @@
4
	use core\HTML\flashmessage\FlashMessage;
5
	use PDO;
6
7
	class Database extends Querybuilder{
8
		private $db_type;
9
		private $db_name;
10
		private $db_user;
11
		private $db_pass;
12
		private $db_host;
13
		private $dbc;
14
15
16
17
		//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------//
18
		public function __construct($db_type, $db_name, $db_user, $db_pass, $db_host) {
19
			$this->db_type = $db_type;
20
			$this->db_name = $db_name;
21
			$this->db_user = $db_user;
22
			$this->db_pass = $db_pass;
23
			$this->db_host = $db_host;
24
		}
25
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
26
27
28
29
		//-------------------------- GETTER ----------------------------------------------------------------------------//
30
		/**
31
		 * function qui fait la connexion a la bdd ne peu etre appelee que dans la classe
32
		 * @return PDO
33
		 */
34
		private function getPdo() {
35
			if ($this->dbc === null) {
36
				$dbc = new PDO($this->db_type.':host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_pass);
37
				$dbc->exec("set names utf8");
38
				$this->dbc = $dbc;
39
			}
40
			return $this->dbc;
41
		}
42
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
43
44
		//-------------------------- FUNCTION QUI FONT DES REQUETES SUR LA BDD --------------------------------------------//
45
		/**
46
		 * effectue une requete en selectr dans la BDD, si ok on renvoit les donnees sinon on renvoi une erreur
47
		 * @param $req
48
		 * @return array
49
		 */
50
		public function query($req) {
51
			$query = $this->getPdo()->query($req);
52
53
			if ($query) {
54
				$obj = $query->fetchAll(PDO::FETCH_OBJ);
55
				return $obj;
56
			}
57
			else {
58
				FlashMessage::setFlash("Une erreur est survenue en executant cette requette : ".$req);
59
			}
60
		}
61
62
		/**
63
		 * fonction qui prepare une requete et qui l'envoi, marche pour insert et update et delete
64
		 * @param $req -> la req a executer
65
		 * @param $value -> le ou les tableaux de valeurs
66
		 */
67
		public function prepare($req, $value) {
68
			$query = $this->getPdo()->prepare($req);
69
			//si on a plusieurs tableaux
70
			if (array_key_exists(0, $value)) {
71
				foreach ($value as $val) {
72
					if (!$query->execute($val)) {
73
						$err = true;
74
					}
75
				}
76
			}
77
			else {
78
				if (!$query->execute($value)) {
79
					$err = true;
80
				}
81
			}
82
83
			//si on a une erreur on renvoi un message
84
			if (isset($err)) {
85
				FlashMessage::setFlash("Une erreur est survenue en executant cette requette : ".$req);
86
			}
87
		}
88
89
		/**
90
		 * pour savoir si une valeur sur un champ précis existe deja en bdd, renvoi true si vrai
91
		 * @param $table
92
		 * @param $champ
93
		 * @param $value
94
		 * @return boolean|null
95
		 */
96
		public function rechercherEgalite($table, $champ, $value, $id_table = null, $id = null) {
97
			if ($id == null) {
98
				$query = $this->getPdo()->query("SELECT COUNT($champ) as nb FROM $table WHERE $champ LIKE '$value'");
99
			}
100
			else {
101
				$query = $this->getPdo()->query("SELECT COUNT($champ) as nb FROM $table WHERE $champ LIKE '$value' AND $id_table != $id");
102
			}
103
104
			if (count($query) > 0) {
105
				foreach ($query as $obj) {
106
					$nb = $obj["nb"];
107
				}
108
109
				if ((isset($nb)) && ($nb != 0)) return true;
110
			}
111
			else {
112
				return false;
113
			}
114
		}
115
		//-------------------------- FIN FUNCTION QUI FONT DES REQUETES SUR LA BDD --------------------------------------------//
116
117
118
		/**
119
		 * tester si une table dans la base donnee existe
120
		 * @param string $table definit la table pour laquelle on doit tester l'existance
121
		 * @return boolean
122
		 */
123
		public function TestTableExist($table) {
124
			$query = $this->getPdo()->query("SHOW TABLES LIKE '$table'");
125
126
			if ($query->rowCount() > 0) {
127
				return true;
128
			}
129
			else {
130
				return false;
131
			}
132
		}
133
134
		public function quote($quote) {
135
			return $this->getPdo()->quote($quote);
136
		}
137
138
		public function lastInsertId() {
139
			return $this->getPdo()->lastInsertId();
140
		}
141
	}

core/modules/Database.class.php 1 location

@@ 7-141 (lines=135) @@
4
	use core\HTML\flashmessage\FlashMessage;
5
	use PDO;
6
7
	class Database extends Querybuilder{
8
		private $db_type;
9
		private $db_name;
10
		private $db_user;
11
		private $db_pass;
12
		private $db_host;
13
		private $dbc;
14
15
16
17
		//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------//
18
		public function __construct($db_type, $db_name, $db_user, $db_pass, $db_host) {
19
			$this->db_type = $db_type;
20
			$this->db_name = $db_name;
21
			$this->db_user = $db_user;
22
			$this->db_pass = $db_pass;
23
			$this->db_host = $db_host;
24
		}
25
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
26
27
28
29
		//-------------------------- GETTER ----------------------------------------------------------------------------//
30
		/**
31
		 * function qui fait la connexion a la bdd ne peu etre appelee que dans la classe
32
		 * @return PDO
33
		 */
34
		private function getPdo() {
35
			if ($this->dbc === null) {
36
				$dbc = new PDO($this->db_type.':host='.$this->db_host.';dbname='.$this->db_name, $this->db_user, $this->db_pass);
37
				$dbc->exec("set names utf8");
38
				$this->dbc = $dbc;
39
			}
40
			return $this->dbc;
41
		}
42
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
43
44
		//-------------------------- FUNCTION QUI FONT DES REQUETES SUR LA BDD --------------------------------------------//
45
		/**
46
		 * effectue une requete en selectr dans la BDD, si ok on renvoit les donnees sinon on renvoi une erreur
47
		 * @param $req
48
		 * @return array
49
		 */
50
		public function query($req) {
51
			$query = $this->getPdo()->query($req);
52
53
			if ($query) {
54
				$obj = $query->fetchAll(PDO::FETCH_OBJ);
55
				return $obj;
56
			}
57
			else {
58
				FlashMessage::setFlash("Une erreur est survenue en executant cette requette : ".$req);
59
			}
60
		}
61
62
		/**
63
		 * fonction qui prepare une requete et qui l'envoi, marche pour insert et update et delete
64
		 * @param $req -> la req a executer
65
		 * @param $value -> le ou les tableaux de valeurs
66
		 */
67
		public function prepare($req, $value) {
68
			$query = $this->getPdo()->prepare($req);
69
			//si on a plusieurs tableaux
70
			if (array_key_exists(0, $value)) {
71
				foreach ($value as $val) {
72
					if (!$query->execute($val)) {
73
						$err = true;
74
					}
75
				}
76
			}
77
			else {
78
				if (!$query->execute($value)) {
79
					$err = true;
80
				}
81
			}
82
83
			//si on a une erreur on renvoi un message
84
			if (isset($err)) {
85
				FlashMessage::setFlash("Une erreur est survenue en executant cette requette : ".$req);
86
			}
87
		}
88
89
		/**
90
		 * pour savoir si une valeur sur un champ précis existe deja en bdd, renvoi true si vrai
91
		 * @param $table
92
		 * @param $champ
93
		 * @param $value
94
		 * @return boolean|null
95
		 */
96
		public function rechercherEgalite($table, $champ, $value, $id_table = null, $id = null) {
97
			if ($id == null) {
98
				$query = $this->getPdo()->query("SELECT COUNT($champ) as nb FROM $table WHERE $champ LIKE '$value'");
99
			}
100
			else {
101
				$query = $this->getPdo()->query("SELECT COUNT($champ) as nb FROM $table WHERE $champ LIKE '$value' AND $id_table != $id");
102
			}
103
104
			if (count($query) > 0) {
105
				foreach ($query as $obj) {
106
					$nb = $obj["nb"];
107
				}
108
109
				if ((isset($nb)) && ($nb != 0)) return true;
110
			}
111
			else {
112
				return false;
113
			}
114
		}
115
		//-------------------------- FIN FUNCTION QUI FONT DES REQUETES SUR LA BDD --------------------------------------------//
116
117
118
		/**
119
		 * tester si une table dans la base donnee existe
120
		 * @param string $table definit la table pour laquelle on doit tester l'existance
121
		 * @return boolean
122
		 */
123
		public function TestTableExist($table) {
124
			$query = $this->getPdo()->query("SHOW TABLES LIKE '$table'");
125
126
			if ($query->rowCount() > 0) {
127
				return true;
128
			}
129
			else {
130
				return false;
131
			}
132
		}
133
134
		public function quote($quote) {
135
			return $this->getPdo()->quote($quote);
136
		}
137
138
		public function lastInsertId() {
139
			return $this->getPdo()->lastInsertId();
140
		}
141
	}