Installation Update + Bugfixes

This commit is contained in:
2022-02-20 23:17:17 +01:00
parent 16a46dd88a
commit 5ffeddb57a
10 changed files with 967 additions and 147 deletions

View File

@@ -86,7 +86,7 @@ class MySQL extends SQL {
return $lastError;
}
private function getPreparedParams($values) {
private function getPreparedParams($values): array {
$sqlParams = array('');
foreach($values as $value) {
$paramType = Parameter::parseType($value);
@@ -138,48 +138,54 @@ class MySQL extends SQL {
$resultRows = array();
$this->lastError = "";
$stmt = null;
$res = null;
$success = false;
if (is_null($values) || empty($values)) {
$res = mysqli_query($this->connection, $query);
$success = $res !== FALSE;
if ($success && $returnValues) {
while($row = $res->fetch_assoc()) {
$resultRows[] = $row;
try {
if (empty($values)) {
$res = mysqli_query($this->connection, $query);
$success = $res !== FALSE;
if ($success && $returnValues) {
while ($row = $res->fetch_assoc()) {
$resultRows[] = $row;
}
}
$res->close();
}
} else if($stmt = $this->connection->prepare($query)) {
} else if ($stmt = $this->connection->prepare($query)) {
$success = false;
$sqlParams = $this->getPreparedParams($values);
$tmp = array();
foreach($sqlParams as $key => $value) $tmp[$key] = &$sqlParams[$key];
if(call_user_func_array(array($stmt, "bind_param"), $tmp)) {
if($stmt->execute()) {
if ($returnValues) {
$res = $stmt->get_result();
if($res) {
while($row = $res->fetch_assoc()) {
$resultRows[] = $row;
$sqlParams = $this->getPreparedParams($values);
if ($stmt->bind_param(...$sqlParams)) {
if ($stmt->execute()) {
if ($returnValues) {
$res = $stmt->get_result();
if ($res) {
while ($row = $res->fetch_assoc()) {
$resultRows[] = $row;
}
$success = true;
} else {
$this->lastError = "PreparedStatement::get_result failed: $stmt->error ($stmt->errno)";
}
$res->close();
$success = true;
} else {
$this->lastError = "PreparedStatement::get_result failed: $stmt->error ($stmt->errno)";
$success = true;
}
} else {
$success = true;
$this->lastError = "PreparedStatement::execute failed: $stmt->error ($stmt->errno)";
}
} else {
$this->lastError = "PreparedStatement::execute failed: $stmt->error ($stmt->errno)";
$this->lastError = "PreparedStatement::prepare failed: $stmt->error ($stmt->errno)";
}
} else {
$this->lastError = "PreparedStatement::prepare failed: $stmt->error ($stmt->errno)";
}
} catch (\mysqli_sql_exception $exception) {
$this->lastError = "MySQL::execute failed: $stmt->error ($stmt->errno)";
} finally {
if ($res !== null && !is_bool($res)) {
$res->close();
}
$stmt->close();
} else {
$success = false;
if ($stmt !== null && !is_bool($stmt)) {
$stmt->close();
}
}
return ($success && $returnValues) ? $resultRows : $success;
@@ -195,7 +201,7 @@ class MySQL extends SQL {
if ($value instanceof Column) {
$columnName = $this->columnName($value->getName());
$updateValues[] = "$leftColumn=VALUES($columnName)";
} else if($value instanceof Add) {
} else if ($value instanceof Add) {
$columnName = $this->columnName($value->getColumn());
$operator = $value->getOperator();
$value = $value->getValue();