public function is_unique_to_user(?string $str, string $field, array $data): bool
{
[$field, $ignoreField, $ignoreValue] = array_pad(
explode(',', $field),
3,
null
);
sscanf($field, '%[^.].%[^.]', $table, $field);
$row = Database::connect($data['DBGroup'] ?? null)
->table($table)
->select('1')
->where('user_id', $_SESSION['user_id'])
->where($field, $str)
->limit(1);
if (
! empty($ignoreField) && ! empty($ignoreValue)
&& ! preg_match('/^\{(\w+)\}$/', $ignoreValue)
) {
$row = $row->where("{$ignoreField} !=", $ignoreValue);
}
return $row->get()->getRow() === null;
}