mirror of https://gitlab.com/pamhyr/pamhyr2
SQL: Minor change and add exception handler.
parent
c9887a97e7
commit
7f8e8d5a9f
|
|
@ -177,6 +177,13 @@ class Study(SQLModel):
|
|||
# SQL #
|
||||
#######
|
||||
|
||||
def _db_insert_into_info(self, key, value, commit=False):
|
||||
self.execute(
|
||||
"INSERT INTO info VALUES " +
|
||||
f"('{key}', '{self._db_format(value)}')",
|
||||
commit=commit
|
||||
)
|
||||
|
||||
def _create(self):
|
||||
# Info (metadata)
|
||||
self.execute(
|
||||
|
|
|
|||
22
src/tools.py
22
src/tools.py
|
|
@ -312,20 +312,30 @@ class SQL(object):
|
|||
|
||||
def _db_format(self, value):
|
||||
# Replace ''' by ''' to preserve SQL injection
|
||||
if value is str:
|
||||
if type(value) is str:
|
||||
value = value.replace("'", "'")
|
||||
return value
|
||||
|
||||
@timer
|
||||
def execute(self, cmd, fetch_one=True, commit=False):
|
||||
logger.debug(f"SQL - {cmd}")
|
||||
res = self._cur.execute(cmd)
|
||||
|
||||
if commit:
|
||||
self._db.commit()
|
||||
value = None
|
||||
try:
|
||||
res = self._cur.execute(cmd)
|
||||
|
||||
value = self._fetch(res, fetch_one)
|
||||
return value
|
||||
if commit:
|
||||
self._db.commit()
|
||||
|
||||
value = self._fetch(res, fetch_one)
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
f"[{Fore.RED}ERROR{Style.RESET_ALL}] " +
|
||||
f"{Fore.RED}{e}{Style.RESET_ALL}"
|
||||
)
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
return value
|
||||
|
||||
def _create(self):
|
||||
logger.warning("TODO: Create")
|
||||
|
|
|
|||
Loading…
Reference in New Issue