diff --git a/src/MySQL.php b/src/MySQL.php index cf7e9ef..8fda49c 100644 --- a/src/MySQL.php +++ b/src/MySQL.php @@ -15,7 +15,6 @@ // Interface for MySQL_Driver with abstractions for data manipulation class MySQL extends mysqli { private string $table; - private ?array $model = null; private ?string $limit = null; private ?string $order_by = null; @@ -55,14 +54,6 @@ return array_map(fn($v): mixed => gettype($v) === "boolean" ? self::filter_boolean($v) : $v, $values); } - // Return value(s) that exist in $this->model - private function in_model(string|array $columns): ?array { - // Place string into array - $columns = is_array($columns) ? $columns : [$columns]; - // Return columns that exist in table model - return array_filter($columns, fn($col): string => in_array($col, $this->model)); - } - /* # Definers These methods are used to build an SQL query by chaining methods together. @@ -80,30 +71,6 @@ return $this; } - // Restrict query to array of column names - public function with(?array $model = null): self { - // Remove table model if empty - if (!$model) { - $this->model = null; - return $this; - } - - // Reset table model - $this->model = []; - - foreach ($model as $k => $v) { - // Column values must be strings - if (!is_string($v)) { - throw new Exception("Key {$k} must have a value of type string"); - } - - // Append column to model - $this->model[] = $v; - } - - return $this; - } - // Create a WHERE statement from filters public function where(?array ...$conditions): self { // Unset filters if null was passed @@ -128,10 +95,6 @@ // Create SQL string and append values to array for prepared statement foreach ($condition as $col => $operation) { - if ($this->model && !$this->in_model($col)) { - continue; - } - // Assume we want an equals comparison if value is not an array if (!is_array($operation)) { $operation = [Operators::EQUALS->value => $operation]; @@ -230,11 +193,6 @@ // Create array of columns from CSV $this->columns = is_array($columns) || is_null($columns) ? $columns : explode(",", $columns); - // Filter columns that aren't in the model if defiend - if ($columns && $this->model) { - $columns = $this->in_model($this->columns); - } - // Create CSV from columns or default to SQL NULL as a string $columns_sql = $this->columns ? implode(",", $this->columns) : "NULL"; @@ -257,16 +215,6 @@ public function update(array $entity): mysqli_result|bool { $this->throw_if_no_table(); - // Make constraint for table model if defined - if ($this->model) { - foreach (array_keys($entity) as $col) { - // Throw if column in entity does not exist in defiend table model - if (!in_array($col, $this->model)) { - throw new Exception("Column key '{$col}' does not exist in table model"); - } - } - } - // Create CSV string with Prepared Statement abbreviations from length of fields array. $changes = array_map(fn($column) => "{$column} = ?", array_keys($entity)); $changes = implode(",", $changes); @@ -291,11 +239,6 @@ public function insert(array $values): mysqli_result|bool { $this->throw_if_no_table(); - // A value for each column in table model must be provided - if ($this->model && count($values) !== count($this->model)) { - throw new Exception("Values length does not match columns in model"); - } - /* Use array keys from $values as columns to insert if array is associative. Treat statement as an all-columns INSERT if the $values array is sequential. @@ -317,18 +260,6 @@ public function delete(array ...$conditions): mysqli_result|bool { $this->throw_if_no_table(); - // Make constraint for table model if defined - if ($this->model) { - foreach ($conditions as $condition) { - foreach (array_keys($condition) as $col) { - // Throw if column in entity does not exist in defiend table model - if (!in_array($col, $this->model)) { - throw new Exception("Column key '{$col}' does not exist in table model"); - } - } - } - } - // Set DELETE WHERE conditions from arguments $this->where(...$conditions);