fix: convert indent. to tabs

This commit is contained in:
Victor Westerlund 2023-10-24 15:25:18 +02:00
parent eb11bca86a
commit 4c18f5686d
2 changed files with 34 additions and 34 deletions

View file

@ -6,17 +6,17 @@
use \mysqli_stmt; use \mysqli_stmt;
use \mysqli_result; use \mysqli_result;
// MySQL query builder and executer abstractions // MySQL query builder and executer abstractions
class DatabaseDriver extends mysqli { class DatabaseDriver extends mysqli {
// Passing arguments to https://www.php.net/manual/en/mysqli.construct.php // Passing arguments to https://www.php.net/manual/en/mysqli.construct.php
function __construct() { function __construct() {
parent::__construct(...func_get_args()); parent::__construct(...func_get_args());
} }
// Create CSV from array // Create CSV from array
private static function csv(array $items): string { private static function csv(array $items): string {
return implode(",", $items); return implode(",", $items);
} }
/* ---- */ /* ---- */
@ -118,4 +118,4 @@
// Return true if rows were matched // Return true if rows were matched
: $query->num_rows > 0; : $query->num_rows > 0;
} }
} }

View file

@ -6,10 +6,10 @@
require_once "DatabaseDriver.php"; require_once "DatabaseDriver.php";
// Interface for MySQL_Driver with abstractions for data manipulation // Interface for MySQL_Driver with abstractions for data manipulation
class MySQL extends DatabaseDriver { class MySQL extends DatabaseDriver {
// Pass constructor arguments to driver // Pass constructor arguments to driver
function __construct() { function __construct() {
parent::__construct(...func_get_args()); parent::__construct(...func_get_args());
} }
@ -61,20 +61,20 @@
/* ---- */ /* ---- */
// Create Prepared Statament for SELECT with optional WHERE filters // Create Prepared Statament for SELECT with optional WHERE filters
public function get(string $table, array|string $columns = null, ?array $filter = [], ?array $order_by = null, int|array|null $limit = null): array|bool { public function get(string $table, array|string $columns = null, ?array $filter = [], ?array $order_by = null, int|array|null $limit = null): array|bool {
// Create CSV string of columns if argument defined, else return bool // Create CSV string of columns if argument defined, else return bool
$columns_sql = $columns ? self::columns($columns) : "NULL"; $columns_sql = $columns ? self::columns($columns) : "NULL";
// Create LIMIT statement if argument is defined // Create LIMIT statement if argument is defined
$limit_sql = $limit ? self::limit($limit) : ""; $limit_sql = $limit ? self::limit($limit) : "";
// Create ORDER BY statement if argument is defined // Create ORDER BY statement if argument is defined
$order_by_sql = $order_by ? self::order_by($order_by) : ""; $order_by_sql = $order_by ? self::order_by($order_by) : "";
// Get array of SQL WHERE string and filter values // Get array of SQL WHERE string and filter values
[$filter_sql, $filter_values] = self::where($filter); [$filter_sql, $filter_values] = self::where($filter);
// Interpolate components into an SQL SELECT statmenet and execute // Interpolate components into an SQL SELECT statmenet and execute
$sql = "SELECT {$columns_sql} FROM {$table}{$filter_sql}{$order_by_sql}{$limit_sql}"; $sql = "SELECT {$columns_sql} FROM {$table}{$filter_sql}{$order_by_sql}{$limit_sql}";
// No columns were specified, return true if query matched rows // No columns were specified, return true if query matched rows
if (!$columns) { if (!$columns) {
@ -85,18 +85,18 @@
$exec = $this->exec($sql, $filter_values); $exec = $this->exec($sql, $filter_values);
// Flatten array if $limit === 1 // Flatten array if $limit === 1
return empty($exec) || $limit !== 1 ? $exec : $exec[0]; return empty($exec) || $limit !== 1 ? $exec : $exec[0];
} }
// Create Prepared Statement for UPDATE using PRIMARY KEY as anchor // Create Prepared Statement for UPDATE using PRIMARY KEY as anchor
public function update(string $table, array $fields, ?array $filter = null): bool { public function update(string $table, array $fields, ?array $filter = null): bool {
// Create CSV string with Prepared Statement abbreviations from length of fields array. // Create CSV string with Prepared Statement abbreviations from length of fields array.
$changes = array_map(fn($column) => "{$column} = ?", array_keys($fields)); $changes = array_map(fn($column) => "{$column} = ?", array_keys($fields));
$changes = implode(",", $changes); $changes = implode(",", $changes);
// Get array of SQL WHERE string and filter values // Get array of SQL WHERE string and filter values
[$filter_sql, $filter_values] = self::where($filter); [$filter_sql, $filter_values] = self::where($filter);
$values = array_values($fields); $values = array_values($fields);
// Append filter values if defined // Append filter values if defined
if ($filter_values) { if ($filter_values) {
array_push($values, ...$filter_values); array_push($values, ...$filter_values);
@ -104,16 +104,16 @@
// Interpolate components into an SQL UPDATE statement and execute // Interpolate components into an SQL UPDATE statement and execute
$sql = "UPDATE {$table} SET {$changes} {$filter_sql}"; $sql = "UPDATE {$table} SET {$changes} {$filter_sql}";
return $this->exec_bool($sql, $values); return $this->exec_bool($sql, $values);
} }
// Create Prepared Statemt for INSERT // Create Prepared Statemt for INSERT
public function insert(string $table, array $values): bool { public function insert(string $table, array $values): bool {
// Return CSV string with Prepared Statement abbreviatons from length of fields array. // Return CSV string with Prepared Statement abbreviatons from length of fields array.
$values_stmt = self::csv(array_fill(0, count($values), "?")); $values_stmt = self::csv(array_fill(0, count($values), "?"));
// Interpolate components into an SQL INSERT statement and execute // Interpolate components into an SQL INSERT statement and execute
$sql = "INSERT INTO {$table} VALUES ({$values_stmt})"; $sql = "INSERT INTO {$table} VALUES ({$values_stmt})";
return $this->exec_bool($sql, $values); return $this->exec_bool($sql, $values);
} }
} }