Completed
Push — test ( cfa8af...b09b80 )
by Temitope
02:59
created
src/Database/DatabaseHandler.php 1 patch
Indentation   +160 added lines, -160 removed lines patch added patch discarded remove patch
@@ -10,128 +10,128 @@  discard block
 block discarded – undo
10 10
 
11 11
 class DatabaseHandler
12 12
 {
13
-    private $tableFields;
14
-    private $dbHelperInstance;
15
-    private $dbConnection;
16
-    private $model;
17
-
18
-    /**
19
-     * This is a constructor; a default method  that will be called automatically during class instantiation.
20
-     */
21
-    public function __construct($modelClassName, $dbConn = null)
22
-    {
23
-        if (is_null($dbConn)) {
24
-            $this->dbConnection = new DatabaseConnection();
25
-        } else {
26
-            $this->dbConnection = $dbConn;
27
-        }
28
-
29
-        $this->model = $modelClassName;
30
-    }
31
-
32
-    /**
33
-     * This method create a record and store it in a table row.
34
-     *
35
-     * @params associative array, string tablename
36
-     *
37
-     * @return bool true or false
38
-     */
39
-    public function create($associative1DArray, $tableName, $dbConn = Null)
40
-    {
41
-        if (is_null($dbConn)) {
42
-            $dbConn = $this->dbConnection;
43
-        }
44
-
45
-        $tableFields = $this->getColumnNames($this->model, $dbConn);
46
-
47
-        $unexpectedFields = self::filterClassAttributes($tableFields, $associative1DArray);
48
-
49
-        if (count($unexpectedFields) > 0) {
50
-            throw TableFieldUndefinedException::create($unexpectedFields, 'needs to be created as a table field');
51
-        }
52
-
53
-        unset($associative1DArray[0]);
54
-
55
-        return $this->insertRecord($dbConn, $tableName, $associative1DArray);
13
+	private $tableFields;
14
+	private $dbHelperInstance;
15
+	private $dbConnection;
16
+	private $model;
17
+
18
+	/**
19
+	 * This is a constructor; a default method  that will be called automatically during class instantiation.
20
+	 */
21
+	public function __construct($modelClassName, $dbConn = null)
22
+	{
23
+		if (is_null($dbConn)) {
24
+			$this->dbConnection = new DatabaseConnection();
25
+		} else {
26
+			$this->dbConnection = $dbConn;
27
+		}
28
+
29
+		$this->model = $modelClassName;
30
+	}
31
+
32
+	/**
33
+	 * This method create a record and store it in a table row.
34
+	 *
35
+	 * @params associative array, string tablename
36
+	 *
37
+	 * @return bool true or false
38
+	 */
39
+	public function create($associative1DArray, $tableName, $dbConn = Null)
40
+	{
41
+		if (is_null($dbConn)) {
42
+			$dbConn = $this->dbConnection;
43
+		}
44
+
45
+		$tableFields = $this->getColumnNames($this->model, $dbConn);
46
+
47
+		$unexpectedFields = self::filterClassAttributes($tableFields, $associative1DArray);
48
+
49
+		if (count($unexpectedFields) > 0) {
50
+			throw TableFieldUndefinedException::create($unexpectedFields, 'needs to be created as a table field');
51
+		}
52
+
53
+		unset($associative1DArray[0]);
54
+
55
+		return $this->insertRecord($dbConn, $tableName, $associative1DArray);
56 56
 
57 57
         
58
-    }
58
+	}
59 59
 
60
-    /**
61
-     * This method runs the insertion query.
62
-     *
63
-     * @param  $dbConn
64
-     * @param  $tableName
65
-     * @param  $associative1DArray
66
-     *
67
-     * @return bool true
68
-     */
69
-    private function insertRecord($dbConn, $tableName, $associative1DArray)
70
-    {
71
-        $insertQuery = 'INSERT INTO '.$tableName;
60
+	/**
61
+	 * This method runs the insertion query.
62
+	 *
63
+	 * @param  $dbConn
64
+	 * @param  $tableName
65
+	 * @param  $associative1DArray
66
+	 *
67
+	 * @return bool true
68
+	 */
69
+	private function insertRecord($dbConn, $tableName, $associative1DArray)
70
+	{
71
+		$insertQuery = 'INSERT INTO '.$tableName;
72 72
 
73
-        $TableValues = implode(',', array_keys($associative1DArray));
73
+		$TableValues = implode(',', array_keys($associative1DArray));
74 74
 
75
-        foreach ($associative1DArray as $field => $value) {
76
-            $FormValues[] = "'".trim(addslashes($value))."'";
77
-        }
75
+		foreach ($associative1DArray as $field => $value) {
76
+			$FormValues[] = "'".trim(addslashes($value))."'";
77
+		}
78 78
 
79
-        $splittedTableValues = implode(',', $FormValues);
79
+		$splittedTableValues = implode(',', $FormValues);
80 80
 
81
-        $insertQuery .= ' ('.$TableValues.')';
82
-        $insertQuery .= ' VALUES ('.$splittedTableValues.')';
81
+		$insertQuery .= ' ('.$TableValues.')';
82
+		$insertQuery .= ' VALUES ('.$splittedTableValues.')';
83 83
 
84
-        $executeQuery = $dbConn->exec($insertQuery);
84
+		$executeQuery = $dbConn->exec($insertQuery);
85 85
 
86
-        return $executeQuery;
86
+		return $executeQuery;
87 87
         
88
-    }
88
+	}
89 89
 
90
-    /**
91
-     * This method updates any table by supplying 3 parameter.
92
-     *
93
-     * @params: $updateParams, $tableName, $associative1DArray
94
-     *
95
-     * @return bool true or false
96
-     */
97
-    public function update(array $updateParams, $tableName, $associative1DArray, $dbConn = null)
98
-    {
99
-        $sql = '';
90
+	/**
91
+	 * This method updates any table by supplying 3 parameter.
92
+	 *
93
+	 * @params: $updateParams, $tableName, $associative1DArray
94
+	 *
95
+	 * @return bool true or false
96
+	 */
97
+	public function update(array $updateParams, $tableName, $associative1DArray, $dbConn = null)
98
+	{
99
+		$sql = '';
100 100
 
101
-        if (is_null($dbConn)) {
102
-            $dbConn = $this->dbConnection;
103
-        }
101
+		if (is_null($dbConn)) {
102
+			$dbConn = $this->dbConnection;
103
+		}
104 104
 
105
-        $updateSql = "UPDATE `$tableName` SET ";
105
+		$updateSql = "UPDATE `$tableName` SET ";
106 106
 
107
-        unset($associative1DArray['id']);
107
+		unset($associative1DArray['id']);
108 108
 
109
-        $unexpectedFields = self::filterClassAttributes($this->getColumnNames($this->model, $dbConn), $associative1DArray);
109
+		$unexpectedFields = self::filterClassAttributes($this->getColumnNames($this->model, $dbConn), $associative1DArray);
110 110
 
111
-        if (count($unexpectedFields) > 0) {
112
-            throw TableFieldUndefinedException::create($unexpectedFields, 'needs to be created as a table field');
113
-        }
111
+		if (count($unexpectedFields) > 0) {
112
+			throw TableFieldUndefinedException::create($unexpectedFields, 'needs to be created as a table field');
113
+		}
114 114
 
115
-        foreach ($associative1DArray as $field => $value) {
116
-            $sql .= "`$field` = '$value'".',';
117
-        }
115
+		foreach ($associative1DArray as $field => $value) {
116
+			$sql .= "`$field` = '$value'".',';
117
+		}
118 118
 
119
-        $updateSql .= $this->prepareUpdateQuery($sql);
119
+		$updateSql .= $this->prepareUpdateQuery($sql);
120 120
 
121
-        foreach ($updateParams as $key => $val) {
122
-            $updateSql .= " WHERE $key = $val";
123
-        }
121
+		foreach ($updateParams as $key => $val) {
122
+			$updateSql .= " WHERE $key = $val";
123
+		}
124 124
 
125
-        $stmt = $dbConn->prepare($updateSql);
125
+		$stmt = $dbConn->prepare($updateSql);
126 126
 
127
-        $boolResponse = $stmt->execute();
127
+		$boolResponse = $stmt->execute();
128 128
 
129
-        if ($boolResponse) {
130
-            return true;
131
-        }
129
+		if ($boolResponse) {
130
+			return true;
131
+		}
132 132
 
133
-        return false;
134
-    }
133
+		return false;
134
+	}
135 135
 
136 136
    /**
137 137
     * This method retrieves record from a table.
@@ -142,26 +142,26 @@  discard block
 block discarded – undo
142 142
     */
143 143
    public static function read($id, $tableName, $dbConn = null)
144 144
    {
145
-       $tableData = [];
145
+	   $tableData = [];
146 146
 
147
-       if (is_null($dbConn)) {
148
-           $dbConn = new DatabaseConnection();
149
-       }
147
+	   if (is_null($dbConn)) {
148
+		   $dbConn = new DatabaseConnection();
149
+	   }
150 150
 
151
-       $sql = $id ? 'SELECT * FROM '.$tableName.' WHERE id = '.$id : 'SELECT * FROM '.$tableName;
151
+	   $sql = $id ? 'SELECT * FROM '.$tableName.' WHERE id = '.$id : 'SELECT * FROM '.$tableName;
152 152
 
153
-       $stmt = $dbConn->prepare($sql);
154
-       $stmt->bindValue(':table', $tableName);
155
-       $stmt->bindValue(':id', $id);
156
-       $stmt->execute();
153
+	   $stmt = $dbConn->prepare($sql);
154
+	   $stmt->bindValue(':table', $tableName);
155
+	   $stmt->bindValue(':id', $id);
156
+	   $stmt->execute();
157 157
 
158
-       $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
158
+	   $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
159 159
 
160
-       foreach ($results as $result) {
161
-           array_push($tableData, $result);
162
-       }
160
+	   foreach ($results as $result) {
161
+		   array_push($tableData, $result);
162
+	   }
163 163
 
164
-       return $tableData;
164
+	   return $tableData;
165 165
    }
166 166
 
167 167
   /**
@@ -173,19 +173,19 @@  discard block
 block discarded – undo
173 173
    */
174 174
   public static function delete($id, $tableName, $dbConn = null)
175 175
   {
176
-      if (is_null($dbConn)) {
177
-          $dbConn = new DatabaseConnection();
178
-      }
176
+	  if (is_null($dbConn)) {
177
+		  $dbConn = new DatabaseConnection();
178
+	  }
179 179
 
180
-      $sql = 'DELETE FROM '.$tableName.' WHERE id = '.$id;
180
+	  $sql = 'DELETE FROM '.$tableName.' WHERE id = '.$id;
181 181
 
182
-      $boolResponse = $dbConn->exec($sql);
182
+	  $boolResponse = $dbConn->exec($sql);
183 183
 
184
-      if ($boolResponse) {
185
-          return true;
186
-      }
184
+	  if ($boolResponse) {
185
+		  return true;
186
+	  }
187 187
 
188
-      throw NoRecordDeletionException::create('Record deletion unsuccessful because id does not match any record');
188
+	  throw NoRecordDeletionException::create('Record deletion unsuccessful because id does not match any record');
189 189
   }
190 190
 
191 191
   /**
@@ -198,15 +198,15 @@  discard block
 block discarded – undo
198 198
    */
199 199
   public static function filterClassAttributes(array $tableColumn, array $userSetterArray)
200 200
   {
201
-      $unexpectedFields = [];
201
+	  $unexpectedFields = [];
202 202
 
203
-      foreach ($userSetterArray as $key => $val) {
204
-          if (! in_array($key, $tableColumn)) {
205
-              $unexpectedFields[] = $key;
206
-          }
207
-      }
203
+	  foreach ($userSetterArray as $key => $val) {
204
+		  if (! in_array($key, $tableColumn)) {
205
+			  $unexpectedFields[] = $key;
206
+		  }
207
+	  }
208 208
 
209
-      return $unexpectedFields;
209
+	  return $unexpectedFields;
210 210
   }
211 211
 
212 212
   /**
@@ -218,13 +218,13 @@  discard block
 block discarded – undo
218 218
    */
219 219
   public function prepareUpdateQuery($sql)
220 220
   {
221
-      $splittedQuery = explode(',', $sql);
221
+	  $splittedQuery = explode(',', $sql);
222 222
 
223
-      array_pop($splittedQuery);
223
+	  array_pop($splittedQuery);
224 224
 
225
-      $mergeData = implode(',', $splittedQuery);
225
+	  $mergeData = implode(',', $splittedQuery);
226 226
 
227
-      return $mergeData;
227
+	  return $mergeData;
228 228
   }
229 229
 
230 230
   /**
@@ -238,26 +238,26 @@  discard block
 block discarded – undo
238 238
    */
239 239
   public function findAndWhere($params, $tableName, $dbConn = null)
240 240
   {
241
-      if (is_null($dbConn)) {
242
-          $dbConn = $this->dbConnection;
243
-      }
241
+	  if (is_null($dbConn)) {
242
+		  $dbConn = $this->dbConnection;
243
+	  }
244 244
 
245
-      if (is_array($params) && !empty($params)) {
246
-          $sql = 'SELECT * FROM '.$tableName;
245
+	  if (is_array($params) && !empty($params)) {
246
+		  $sql = 'SELECT * FROM '.$tableName;
247 247
 
248
-          foreach ($params as $key => $val) {
249
-              $sql .= " WHERE `$key` = '$val'";
250
-          }
248
+		  foreach ($params as $key => $val) {
249
+			  $sql .= " WHERE `$key` = '$val'";
250
+		  }
251 251
 
252
-          $statement = $dbConn->prepare($sql);
253
-          $statement->execute();
252
+		  $statement = $dbConn->prepare($sql);
253
+		  $statement->execute();
254 254
 
255
-          $returnedRowNumbers = $statement->rowCount();
255
+		  $returnedRowNumbers = $statement->rowCount();
256 256
 
257
-          return $returnedRowNumbers ? true : false;
258
-      }
257
+		  return $returnedRowNumbers ? true : false;
258
+	  }
259 259
 
260
-      throw EmptyArrayException::create('Array Expected: parameter passed to this function is not an array');
260
+	  throw EmptyArrayException::create('Array Expected: parameter passed to this function is not an array');
261 261
   }
262 262
 
263 263
   /**
@@ -270,24 +270,24 @@  discard block
 block discarded – undo
270 270
    */
271 271
   public function getColumnNames($table, $dbConn = null)
272 272
   {
273
-      $tableFields = [];
273
+	  $tableFields = [];
274 274
 
275
-      if (is_null($dbConn)) {
276
-          $dbConn = $this->dbConnection;
277
-      }
275
+	  if (is_null($dbConn)) {
276
+		  $dbConn = $this->dbConnection;
277
+	  }
278 278
 
279
-      $sql = 'SHOW COLUMNS FROM '.$table;
279
+	  $sql = 'SHOW COLUMNS FROM '.$table;
280 280
 
281
-      $stmt = $dbConn->prepare($sql);
282
-      $stmt->bindValue(':table', $table, PDO::PARAM_STR);
283
-      $stmt->execute();
281
+	  $stmt = $dbConn->prepare($sql);
282
+	  $stmt->bindValue(':table', $table, PDO::PARAM_STR);
283
+	  $stmt->execute();
284 284
 
285
-      $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
285
+	  $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
286 286
 
287
-      foreach ($results as $result) {
288
-          array_push($tableFields, $result['Field']);
289
-      }
287
+	  foreach ($results as $result) {
288
+		  array_push($tableFields, $result['Field']);
289
+	  }
290 290
 
291
-      return $tableFields;
291
+	  return $tableFields;
292 292
   }
293 293
 }
Please login to merge, or discard this patch.