summaryrefslogtreecommitdiff
path: root/includes/Database.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Database.php')
-rw-r--r--includes/Database.php30
1 files changed, 21 insertions, 9 deletions
diff --git a/includes/Database.php b/includes/Database.php
index cdaa0f8..4950ae3 100644
--- a/includes/Database.php
+++ b/includes/Database.php
@@ -32,17 +32,30 @@ class Database
public function query(string $sql, string $types = "", ...$vars): array
{
- $stmt = mysqli_stmt_init($this->sql_connection);
+ $result = array();
- if (!mysqli_stmt_prepare($stmt, $sql)) {
- trigger_error('Could not create post due to internal error: ' . mysqli_error($this->sql_connection));
- }
+ if ($types == "") {
+ // No types were provided, preparing a statement is not necessary
+ $db_result = mysqli_query($this->sql_connection, $sql);
+ } else {
+ $stmt = mysqli_stmt_init($this->sql_connection);
- mysqli_stmt_bind_param($stmt, $types, ...$vars);
- mysqli_stmt_execute($stmt);
+ if (!mysqli_stmt_prepare($stmt, $sql)) {
+ trigger_error('Internal error: ' . mysqli_error($this->sql_connection));
+ return $result;
+ }
- $result = array();
- $db_result = mysqli_stmt_get_result($stmt);
+ mysqli_stmt_bind_param($stmt, $types, ...$vars);
+ mysqli_stmt_execute($stmt);
+
+ $db_result = mysqli_stmt_get_result($stmt);
+
+ mysqli_stmt_close($stmt);
+ }
+
+ if (!$db_result) {
+ return $result;
+ }
if (mysqli_num_rows($db_result) > 0) {
while ($row = mysqli_fetch_assoc($db_result)) {
@@ -51,7 +64,6 @@ class Database
}
mysqli_free_result($db_result);
- mysqli_stmt_close($stmt);
return $result;
}