private function replaceParameters($sql, $args)
{
$offset = 0;
- foreach ($args AS $param => $value) {
+ foreach ($args as $param => $value) {
if (is_int($args[$param]) || is_float($args[$param]) || is_bool($args[$param])) {
$replace = intval($args[$param]);
} elseif (is_null($args[$param])) {
// Renumber the array keys to be sure that they fit
$i = 0;
$args = [];
- foreach ($params AS $param) {
+ foreach ($params as $param) {
// Avoid problems with some MySQL servers and boolean values. See issue #3645
if (is_bool($param)) {
$param = (int)$param;
break;
}
- foreach ($args AS $param => $value) {
+ foreach ($args as $param => $value) {
if (is_int($args[$param])) {
$data_type = PDO::PARAM_INT;
} else {
$param_types = '';
$values = [];
- foreach ($args AS $param => $value) {
+ foreach ($args as $param => $value) {
if (is_int($args[$param])) {
$param_types .= 'i';
} elseif (is_float($args[$param])) {
$result = $stmt->result_metadata();
$fields = $result->fetch_fields();
- foreach ($cols_num AS $param => $col) {
+ foreach ($cols_num as $param => $col) {
$columns[$fields[$param]->name] = $col;
}
}
}
}
- foreach ($old_fields AS $fieldname => $content) {
+ foreach ($old_fields as $fieldname => $content) {
if (isset($fields[$fieldname]) && !is_null($content) && ($fields[$fieldname] == $content)) {
unset($fields[$fieldname]);
}
$row = $this->fetchFirst($sql, $condition);
- // Ensure to always return either a "null" or a numeric value
- return is_numeric($row['count']) ? (int)$row['count'] : $row['count'];
+ if (!isset($row['count'])) {
+ $this->logger->notice('Invalid count.', ['table' => $table, 'row' => $row, 'expression' => $expression, 'condition' => $condition_string, 'callstack' => System::callstack()]);
+ return 0;
+ } else {
+ return (int)$row['count'];
+ }
}
/**