update method

Future<int> update(
  1. Map<String, dynamic> map,
  2. String table, {
  3. required List<String> keys,
  4. String? dbName,
})

Update a row identified by keys with values from map. Returns the number of affected rows.

Implementation

Future<int> update(Map<String, dynamic> map, String table,
    {required List<String> keys, String? dbName}) async {
  _validateKeys(keys);
  String updateClause = "";
  final List<Object?> params = [];
  final values = map.keys.where((element) => !keys.contains(element));
  for (String value in values) {
    if (updateClause.isNotEmpty) updateClause += ", ";
    updateClause += "${sanitizeColumnName(value)}=?";
    params.add(map[value]);
  }
  String whereClause = _getWhereClause(keys, params, map);
  final String sql = "UPDATE $table SET $updateClause WHERE $whereClause";
  final res =
      await execute(sql, tables: [table], params: params, dbName: dbName);
  return res;
}