summaryrefslogtreecommitdiff
path: root/day9/task5_vue/backend/database
diff options
context:
space:
mode:
Diffstat (limited to 'day9/task5_vue/backend/database')
-rw-r--r--day9/task5_vue/backend/database/wrappers.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/day9/task5_vue/backend/database/wrappers.py b/day9/task5_vue/backend/database/wrappers.py
index d380b2e..d7dc6d4 100644
--- a/day9/task5_vue/backend/database/wrappers.py
+++ b/day9/task5_vue/backend/database/wrappers.py
@@ -90,17 +90,25 @@ class MySQLWrapper(Wrapper):
self.connection.commit()
def update(self, table_name, expressions, conditions):
+ scheme = self.schemes[table_name]
expressions_formatted = []
+
for field_name, value in expressions.items():
- if value != 'NULL' or not value.isnumeric():
- value = f'"{value}"'
- expressions_formatted.append(f'`{field_name}`={value}')
+ if scheme.fields[field_name].nullable and value is None:
+ expressions_formatted.append(f'`{field_name}`=NULL')
+ elif scheme.fields[field_name].data_type == str:
+ expressions_formatted.append(f'`{field_name}`="{value}"')
+ else:
+ expressions_formatted.append(f'`{field_name}`={value}')
conditions_formatted = []
for field_name, value in conditions.items():
- if value != 'NULL' or not value.isnumeric():
- value = f'"{value}"'
- conditions_formatted.append(f'`{field_name}`={value}')
+ if scheme.fields[field_name].nullable and value is None:
+ conditions_formatted.append(f'`{field_name}`=NULL')
+ elif scheme.fields[field_name].data_type == str:
+ conditions_formatted.append(f'`{field_name}`="{value}"')
+ else:
+ conditions_formatted.append(f'`{field_name}`={value}')
with self.connection.cursor() as cursor:
cursor.execute("UPDATE `{}` SET {} WHERE {};".format(