Completed
Push — test ( 1f0a0d...c391ee )
by Temitope
02:46
created
src/Database/DatabaseHandler.php 1 patch
Indentation   +144 added lines, -144 removed lines patch added patch discarded remove patch
@@ -18,105 +18,105 @@  discard block
 block discarded – undo
18 18
 use Laztopaz\potatoORM\NoRecordUpdateException;
19 19
 
20 20
 class DatabaseHandler {
21
-    private $tableFields;
22
-    private $dbHelperInstance;
23
-    private $dbConnection;
24
-    private $model;
21
+	private $tableFields;
22
+	private $dbHelperInstance;
23
+	private $dbConnection;
24
+	private $model;
25 25
     
26
-    /**
27
-     * This is a constructor; a default method  that will be called automatically during class instantiation
28
-     */
29
-    public function __construct($modelClassName, $dbConn = Null) {
30
-        if (is_null($dbConn)) {
31
-            $this->dbConnection = new DatabaseConnection();
32
-          } else {
33
-            $this->dbConnection = $dbConn;
34
-          }
35
-          $this->model = $modelClassName;
36
-     }
26
+	/**
27
+	 * This is a constructor; a default method  that will be called automatically during class instantiation
28
+	 */
29
+	public function __construct($modelClassName, $dbConn = Null) {
30
+		if (is_null($dbConn)) {
31
+			$this->dbConnection = new DatabaseConnection();
32
+		  } else {
33
+			$this->dbConnection = $dbConn;
34
+		  }
35
+		  $this->model = $modelClassName;
36
+	 }
37 37
      
38
-    /**
39
-     * This method create a record and store it in a table row
40
-     * @params associative array, string tablename
41
-     * @return boolean true or false
42
-     */
43
-    public function create($associative1DArray, $tableName, $dbConn = Null) {
44
-    	$tableFields = $this->getColumnNames($this->model, $this->dbConnection);
45
-    	$unexpectedFields = self::checkIfMagicSetterContainsIsSameAsClassModel($tableFields,$associative1DArray);
46
-    	if (count($unexpectedFields) > 0) {
47
-    	    throw TableFieldUndefinedException::reportUnknownTableField($unexpectedFields,"needs to be created as table field");
48
-    	}
49
-      unset($associative1DArray[0]);
50
-    	if (is_null($dbConn)) {
51
-    	    $dbConn = $this->dbConnection;
52
-    	}
53
-    	  return $this->insertRecord($dbConn, $tableName, $associative1DArray);
54
-    }
38
+	/**
39
+	 * This method create a record and store it in a table row
40
+	 * @params associative array, string tablename
41
+	 * @return boolean true or false
42
+	 */
43
+	public function create($associative1DArray, $tableName, $dbConn = Null) {
44
+		$tableFields = $this->getColumnNames($this->model, $this->dbConnection);
45
+		$unexpectedFields = self::checkIfMagicSetterContainsIsSameAsClassModel($tableFields,$associative1DArray);
46
+		if (count($unexpectedFields) > 0) {
47
+			throw TableFieldUndefinedException::reportUnknownTableField($unexpectedFields,"needs to be created as table field");
48
+		}
49
+	  unset($associative1DArray[0]);
50
+		if (is_null($dbConn)) {
51
+			$dbConn = $this->dbConnection;
52
+		}
53
+		  return $this->insertRecord($dbConn, $tableName, $associative1DArray);
54
+	}
55 55
     
56
-    /**
57
-     * This method runs the insertion query
58
-     * @param  $dbConn           
59
-     * @param  $tableName          
60
-     * @param  $associative1DArray 
61
-     * @return boolean true         
62
-     */
63
-    private function  insertRecord($dbConn, $tableName, $associative1DArray) {
64
-    	$insertQuery = 'INSERT INTO '.$tableName;
65
-    	$TableValues = implode(',',array_keys($associative1DArray));
66
-    	foreach ($associative1DArray as $field => $value) {
67
-    	    $FormValues[] = "'".trim(addslashes($value))."'";
68
-    	}
69
-    	$splittedTableValues = implode(',', $FormValues);
70
-    	$insertQuery.= ' ('.$TableValues.')';
71
-    	$insertQuery.= ' VALUES ('.$splittedTableValues.')';
72
-    	$executeQuery = $dbConn->exec($insertQuery);
73
-
74
-      if ($executeQuery) {
75
-        return true;
76
-      }
77
-      return false;
78
-
79
-    	throw NoRecordInsertionException::checkNoRecordAddedException("Record not inserted successfully");
80
-    }
81
-
82
-    /**
83
-     * This method updates any table by supplying 3 parameter
84
-     * @params: $updateParams, $tableName, $associative1DArray
85
-     * @return boolean true or false
86
-     */
87
-    public function update(array $updateParams, $tableName, $associative1DArray, $dbConn = Null)
88
-    {
89
-    	$sql = "";
90
-    	if (is_null($dbConn)) {
91
-    	    $dbConn = $this->dbConnection;
92
-    	}
93
-    	$updateSql = "UPDATE `$tableName` SET ";
94
-    	unset($associative1DArray['id']);
95
-    	$unexpectedFields = self::checkIfMagicSetterContainsIsSameAsClassModel($this->getColumnNames($this->model, $this->dbConnection),$associative1DArray);
56
+	/**
57
+	 * This method runs the insertion query
58
+	 * @param  $dbConn           
59
+	 * @param  $tableName          
60
+	 * @param  $associative1DArray 
61
+	 * @return boolean true         
62
+	 */
63
+	private function  insertRecord($dbConn, $tableName, $associative1DArray) {
64
+		$insertQuery = 'INSERT INTO '.$tableName;
65
+		$TableValues = implode(',',array_keys($associative1DArray));
66
+		foreach ($associative1DArray as $field => $value) {
67
+			$FormValues[] = "'".trim(addslashes($value))."'";
68
+		}
69
+		$splittedTableValues = implode(',', $FormValues);
70
+		$insertQuery.= ' ('.$TableValues.')';
71
+		$insertQuery.= ' VALUES ('.$splittedTableValues.')';
72
+		$executeQuery = $dbConn->exec($insertQuery);
73
+
74
+	  if ($executeQuery) {
75
+		return true;
76
+	  }
77
+	  return false;
78
+
79
+		throw NoRecordInsertionException::checkNoRecordAddedException("Record not inserted successfully");
80
+	}
81
+
82
+	/**
83
+	 * This method updates any table by supplying 3 parameter
84
+	 * @params: $updateParams, $tableName, $associative1DArray
85
+	 * @return boolean true or false
86
+	 */
87
+	public function update(array $updateParams, $tableName, $associative1DArray, $dbConn = Null)
88
+	{
89
+		$sql = "";
90
+		if (is_null($dbConn)) {
91
+			$dbConn = $this->dbConnection;
92
+		}
93
+		$updateSql = "UPDATE `$tableName` SET ";
94
+		unset($associative1DArray['id']);
95
+		$unexpectedFields = self::checkIfMagicSetterContainsIsSameAsClassModel($this->getColumnNames($this->model, $this->dbConnection),$associative1DArray);
96 96
   
97
-    	if (count($unexpectedFields) > 0) {
98
-    		throw TableFieldUndefinedException::reportUnknownTableField($unexpectedFields, "needs to be created as table field");
99
-    	}
100
-    	foreach($associative1DArray as $field => $value) {
101
-    	    $sql .= "`$field` = '$value'".",";
102
-    	}
97
+		if (count($unexpectedFields) > 0) {
98
+			throw TableFieldUndefinedException::reportUnknownTableField($unexpectedFields, "needs to be created as table field");
99
+		}
100
+		foreach($associative1DArray as $field => $value) {
101
+			$sql .= "`$field` = '$value'".",";
102
+		}
103 103
     	
104
-    	$updateSql .= $this->prepareUpdateQuery($sql);
104
+		$updateSql .= $this->prepareUpdateQuery($sql);
105 105
     	
106
-    	foreach ($updateParams as $key => $val) {
107
-    	    $updateSql .= " WHERE $key = $val";
108
-    	}
109
-    	$stmt = $dbConn->prepare($updateSql);
106
+		foreach ($updateParams as $key => $val) {
107
+			$updateSql .= " WHERE $key = $val";
108
+		}
109
+		$stmt = $dbConn->prepare($updateSql);
110 110
 
111
-    	$boolResponse = $stmt->execute();
111
+		$boolResponse = $stmt->execute();
112 112
 
113
-      if ($boolResponse) {
114
-         return true;
115
-      }
116
-      return false;
113
+	  if ($boolResponse) {
114
+		 return true;
115
+	  }
116
+	  return false;
117 117
 
118
-      throw NoRecordUpdateException::checkNoRecordUpdateException("Record not updated successfully");
119
-    }
118
+	  throw NoRecordUpdateException::checkNoRecordUpdateException("Record not updated successfully");
119
+	}
120 120
     
121 121
   /**
122 122
    * This method retrieves record from a table
@@ -128,22 +128,22 @@  discard block
 block discarded – undo
128 128
    	$tableData = [];
129 129
    	
130 130
    	if (is_null($dbConn)) {
131
-   	    $dbConn = new DatabaseConnection();
131
+   		$dbConn = new DatabaseConnection();
132 132
    	}
133 133
    	$sql = $id  ? 'SELECT * FROM '.$tableName.' WHERE id = '.$id : 'SELECT * FROM '.$tableName;
134 134
    	
135 135
    	try {
136
-   	    $stmt = $dbConn->prepare($sql);
137
-   	    $stmt->bindValue(':table', $tableName);
138
-   	    $stmt->bindValue(':id', $id);
139
-   	    $stmt->execute();
136
+   		$stmt = $dbConn->prepare($sql);
137
+   		$stmt->bindValue(':table', $tableName);
138
+   		$stmt->bindValue(':id', $id);
139
+   		$stmt->execute();
140 140
    	} catch (PDOException $e) {
141
-   	    return  $e->getMessage();
141
+   		return  $e->getMessage();
142 142
    	}
143 143
    	$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
144 144
    	
145 145
    	foreach($results as $result) {
146
-   	    array_push($tableData, $result);
146
+   		array_push($tableData, $result);
147 147
    	}
148 148
    	return $tableData;
149 149
    }
@@ -155,20 +155,20 @@  discard block
 block discarded – undo
155 155
    */
156 156
   public static function delete($id, $tableName, $dbConn = Null)
157 157
   {
158
-      if (is_null($dbConn)) {
159
-          $dbConn = new DatabaseConnection();
160
-      }
158
+	  if (is_null($dbConn)) {
159
+		  $dbConn = new DatabaseConnection();
160
+	  }
161 161
 
162
-      $sql = 'DELETE FROM '.$tableName.' WHERE id = '.$id;
162
+	  $sql = 'DELETE FROM '.$tableName.' WHERE id = '.$id;
163 163
 
164
-      $boolResponse = $dbConn->exec($sql);
164
+	  $boolResponse = $dbConn->exec($sql);
165 165
 
166
-      if ($boolResponse) {
166
+	  if ($boolResponse) {
167 167
 
168
-        return true;
169
-      }
168
+		return true;
169
+	  }
170 170
 
171
-      throw NoRecordDeletionException::checkNoRecordDeleteException("Record not deleted successfully");
171
+	  throw NoRecordDeletionException::checkNoRecordDeleteException("Record not deleted successfully");
172 172
   }
173 173
   
174 174
   /**
@@ -179,13 +179,13 @@  discard block
 block discarded – undo
179 179
    */
180 180
   public static function checkIfMagicSetterContainsIsSameAsClassModel(array $tableColumn, array $userSetterArray)
181 181
   {
182
-      $unexpectedFields = [];
183
-      foreach ($userSetterArray as $key => $val) {
184
-          if (!in_array($key,$tableColumn)) {
185
-              $unexpectedFields[] = $key;
186
-          }
187
-      }
188
-      return $unexpectedFields;
182
+	  $unexpectedFields = [];
183
+	  foreach ($userSetterArray as $key => $val) {
184
+		  if (!in_array($key,$tableColumn)) {
185
+			  $unexpectedFields[] = $key;
186
+		  }
187
+	  }
188
+	  return $unexpectedFields;
189 189
   }
190 190
   
191 191
   /**
@@ -195,10 +195,10 @@  discard block
 block discarded – undo
195 195
    */
196 196
   public function prepareUpdateQuery($sql)
197 197
   {
198
-      $splittedQuery = explode(",",$sql);
199
-      array_pop($splittedQuery);
200
-      $mergeData = implode(",",$splittedQuery);
201
-      return $mergeData;
198
+	  $splittedQuery = explode(",",$sql);
199
+	  array_pop($splittedQuery);
200
+	  $mergeData = implode(",",$splittedQuery);
201
+	  return $mergeData;
202 202
   }
203 203
   
204 204
   /**
@@ -210,21 +210,21 @@  discard block
 block discarded – undo
210 210
    */
211 211
   public function findAndWhere($params, $tableName, $dbConn = Null)
212 212
   {
213
-      if (is_null($dbConn)) {
214
-          $dbConn = $this->dbConnection;
215
-      }
216
-      if (is_array($params) && !empty($params)) {
217
-          $sql = "SELECT * FROM ".$tableName;
218
-          foreach ($params as $key => $val) {
219
-              $sql .= " WHERE `$key` = '$val'";
220
-          }
221
-          $statement = $dbConn->prepare($sql);
222
-          $statement->execute();
223
-          $returnedRowNumbers = $statement->rowCount();
213
+	  if (is_null($dbConn)) {
214
+		  $dbConn = $this->dbConnection;
215
+	  }
216
+	  if (is_array($params) && !empty($params)) {
217
+		  $sql = "SELECT * FROM ".$tableName;
218
+		  foreach ($params as $key => $val) {
219
+			  $sql .= " WHERE `$key` = '$val'";
220
+		  }
221
+		  $statement = $dbConn->prepare($sql);
222
+		  $statement->execute();
223
+		  $returnedRowNumbers = $statement->rowCount();
224 224
           
225
-          return $returnedRowNumbers  ? true : false;
226
-      }
227
-      throw EmptyArrayException::checkEmptyArrayException("Array Expected: parameter passed to this function is not an array");
225
+		  return $returnedRowNumbers  ? true : false;
226
+	  }
227
+	  throw EmptyArrayException::checkEmptyArrayException("Array Expected: parameter passed to this function is not an array");
228 228
   }
229 229
   
230 230
   /**
@@ -234,22 +234,22 @@  discard block
 block discarded – undo
234 234
    * @return array
235 235
    */
236 236
  public function getColumnNames($table, $dbConn = Null) {
237
-     $tableFields = [];
237
+	 $tableFields = [];
238 238
      
239
-     if (is_null($dbConn)) {
240
-         $dbConn = $this->dbConnection;
241
-     }
242
-     $sql = "SHOW COLUMNS FROM ".$table;
239
+	 if (is_null($dbConn)) {
240
+		 $dbConn = $this->dbConnection;
241
+	 }
242
+	 $sql = "SHOW COLUMNS FROM ".$table;
243 243
      
244
-     $stmt = $dbConn->prepare($sql);
245
-     $stmt->bindValue(':table', $table, PDO::PARAM_STR);
246
-     $stmt->execute();
247
-     $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
244
+	 $stmt = $dbConn->prepare($sql);
245
+	 $stmt->bindValue(':table', $table, PDO::PARAM_STR);
246
+	 $stmt->execute();
247
+	 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
248 248
      
249
-     foreach($results as $result) {
250
-         array_push($tableFields, $result['Field']);
251
-     }
252
-     return $tableFields;
249
+	 foreach($results as $result) {
250
+		 array_push($tableFields, $result['Field']);
251
+	 }
252
+	 return $tableFields;
253 253
  }
254 254
 
255 255
 }
Please login to merge, or discard this patch.