mirror of
https://github.com/friendica/friendica
synced 2025-04-25 17:50:11 +00:00
Add direct field possibility
This commit is contained in:
parent
db5078d51c
commit
557d0e3aeb
5 changed files with 83 additions and 16 deletions
|
@ -1357,6 +1357,15 @@ class Database
|
|||
}
|
||||
|
||||
$fields = $this->castFields($table, $fields);
|
||||
$direct_fields = [];
|
||||
|
||||
foreach ($fields as $key => $value) {
|
||||
if (is_numeric($key)) {
|
||||
$direct_fields[] = $value;
|
||||
unset($fields[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$table_string = DBA::buildTableString([$table]);
|
||||
|
||||
|
@ -1369,7 +1378,8 @@ class Database
|
|||
}
|
||||
|
||||
$sql = "UPDATE " . $ignore . $table_string . " SET "
|
||||
. implode(" = ?, ", array_map([DBA::class, 'quoteIdentifier'], array_keys($fields))) . " = ?"
|
||||
. ((count($fields) > 0) ? implode(" = ?, ", array_map([DBA::class, 'quoteIdentifier'], array_keys($fields))) . " = ?" : "")
|
||||
. ((count($direct_fields) > 0) ? ((count($fields) > 0) ? " , " : "") . implode(" , ", $direct_fields) : "")
|
||||
. $condition_string;
|
||||
|
||||
// Combines the updated fields parameter values with the condition parameter values
|
||||
|
|
|
@ -38,22 +38,25 @@ class DatabaseException extends Exception
|
|||
*
|
||||
* @link https://php.net/manual/en/exception.construct.php
|
||||
*
|
||||
* @param string $message The Database error message.
|
||||
* @param int $code The Database error code.
|
||||
* @param string $query The Database error query.
|
||||
* @param Throwable $previous [optional] The previous throwable used for the exception chaining.
|
||||
* @param string $message The Database error message.
|
||||
* @param int $code The Database error code.
|
||||
* @param string $query The Database error query.
|
||||
* @param Throwable|null $previous [optional] The previous throwable used for the exception chaining.
|
||||
*/
|
||||
public function __construct(string $message, int $code, string $query, Throwable $previous = null)
|
||||
{
|
||||
parent::__construct($message, $code, $previous);
|
||||
$this->query = $query;
|
||||
|
||||
parent::__construct(sprintf('"%s" at "%s"', $message, $query) , $code, $previous);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* Returns the query, which caused the exception
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
public function getQuery(): string
|
||||
{
|
||||
return sprintf('Database error %d "%s" at "%s"', $this->message, $this->code, $this->query);
|
||||
return $this->query;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue