Merge pull request #10819 from MrPetovan/task/refactor-notifications
Cast object parameters to string in Database\Database
This commit is contained in:
commit
6275159761
2 changed files with 17 additions and 12 deletions
|
@ -549,12 +549,14 @@ class Database
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($args as $param => $value) {
|
foreach (array_keys($args) as $param) {
|
||||||
|
$data_type = PDO::PARAM_STR;
|
||||||
if (is_int($args[$param])) {
|
if (is_int($args[$param])) {
|
||||||
$data_type = PDO::PARAM_INT;
|
$data_type = PDO::PARAM_INT;
|
||||||
} else {
|
} elseif ($args[$param] !== null) {
|
||||||
$data_type = PDO::PARAM_STR;
|
$args[$param] = (string)$args[$param];
|
||||||
}
|
}
|
||||||
|
|
||||||
$stmt->bindParam($param, $args[$param], $data_type);
|
$stmt->bindParam($param, $args[$param], $data_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -605,13 +607,16 @@ class Database
|
||||||
|
|
||||||
$param_types = '';
|
$param_types = '';
|
||||||
$values = [];
|
$values = [];
|
||||||
foreach ($args as $param => $value) {
|
foreach (array_keys($args) as $param) {
|
||||||
if (is_int($args[$param])) {
|
if (is_int($args[$param])) {
|
||||||
$param_types .= 'i';
|
$param_types .= 'i';
|
||||||
} elseif (is_float($args[$param])) {
|
} elseif (is_float($args[$param])) {
|
||||||
$param_types .= 'd';
|
$param_types .= 'd';
|
||||||
} elseif (is_string($args[$param])) {
|
} elseif (is_string($args[$param])) {
|
||||||
$param_types .= 's';
|
$param_types .= 's';
|
||||||
|
} elseif (is_object($args[$param]) && method_exists($args[$param], '__toString')) {
|
||||||
|
$param_types .= 's';
|
||||||
|
$args[$param] = (string)$args[$param];
|
||||||
} else {
|
} else {
|
||||||
$param_types .= 'b';
|
$param_types .= 'b';
|
||||||
}
|
}
|
||||||
|
@ -969,7 +974,7 @@ class Database
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert a row into a table
|
* Insert a row into a table. Field value objects will be cast as string.
|
||||||
*
|
*
|
||||||
* @param string|array $table Table name or array [schema => table]
|
* @param string|array $table Table name or array [schema => table]
|
||||||
* @param array $param parameter array
|
* @param array $param parameter array
|
||||||
|
@ -1244,9 +1249,9 @@ class Database
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates rows
|
* Updates rows in the database. Field value objects will be cast as string.
|
||||||
*
|
*
|
||||||
* Updates rows in the database. When $old_fields is set to an array,
|
* When $old_fields is set to an array,
|
||||||
* the system will only do an update if the fields in that array changed.
|
* the system will only do an update if the fields in that array changed.
|
||||||
*
|
*
|
||||||
* Attention:
|
* Attention:
|
||||||
|
@ -1561,9 +1566,9 @@ class Database
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $fields;
|
return $fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the error number of the last query
|
* Returns the error number of the last query
|
||||||
*
|
*
|
||||||
|
|
|
@ -104,11 +104,11 @@ class Notify extends BaseDepository
|
||||||
$fields = [
|
$fields = [
|
||||||
'type' => $Notify->type,
|
'type' => $Notify->type,
|
||||||
'name' => $Notify->name,
|
'name' => $Notify->name,
|
||||||
'url' => (string)$Notify->url,
|
'url' => $Notify->url,
|
||||||
'photo' => (string)$Notify->photo,
|
'photo' => $Notify->photo,
|
||||||
'msg' => $Notify->msg,
|
'msg' => $Notify->msg,
|
||||||
'uid' => $Notify->uid,
|
'uid' => $Notify->uid,
|
||||||
'link' => (string)$Notify->link,
|
'link' => $Notify->link,
|
||||||
'iid' => $Notify->itemId,
|
'iid' => $Notify->itemId,
|
||||||
'parent' => $Notify->parent,
|
'parent' => $Notify->parent,
|
||||||
'seen' => $Notify->seen,
|
'seen' => $Notify->seen,
|
||||||
|
|
Loading…
Reference in a new issue