From d475ee2999a1fd43c03518100bd55b0929acc5d9 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 24 Jul 2019 15:41:54 +0400 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20=D1=82=D0=B8=D0=BF=20=D0=B2?= =?UTF-8?q?=D1=81=D0=BF=D0=BB=D1=8B=D0=B2=D0=B0=D1=8E=D1=89=D0=B8=D1=85=20?= =?UTF-8?q?=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9.=20?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8F=20UPDATE?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20=D0=B2=20?= =?UTF-8?q?mysql=20=D0=BE=D0=B1=D0=B5=D1=80=D1=82=D0=BA=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day9/task5_vue/backend/database/wrappers.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'day9/task5_vue/backend/database/wrappers.py') 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( -- cgit v1.2.3