update method

Future<void> update(
  1. Map<String, dynamic> data
)

UPDATE

Implementation

Future<void> update(Map<String, dynamic> data) async {
  if (_wheres.isEmpty) {
    throw Exception('Update requires a where clause.');
  }

  final setClauses = <String>[];
  final bindings = {..._bindings};

  if (DB.driver == DBDriver.postgres) {
    data.forEach((k, v) {
      setClauses.add('$k = :$k');
      bindings[k] = v;
    });
  } else {
    data.forEach((k, v) {
      setClauses.add('$k = ?');
      bindings[k] = v;
    });
  }

  final sql =
      'UPDATE $table SET ${setClauses.join(', ')} WHERE ${_wheres.join(' AND ')}';
  await DB.query(
    sql,
    namedParams: DB.driver == DBDriver.postgres ? bindings : null,
    positionalParams:
        DB.driver == DBDriver.mysql ? bindings.values.toList() : null,
  );
}