mirror of
https://github.com/ada-dmitry/lab6.git
synced 2026-09-24 09:20:15 +00:00
0.5.1
This commit is contained in:
Binary file not shown.
+13
-5
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
from dbconnection import *
|
from dbconnection import *
|
||||||
|
|
||||||
|
'''
|
||||||
|
FIXME:
|
||||||
|
1) Не работает санация для insert_one!
|
||||||
|
'''
|
||||||
|
|
||||||
class DbTable:
|
class DbTable:
|
||||||
dbconn = None
|
dbconn = None
|
||||||
|
|
||||||
@@ -47,18 +52,21 @@ class DbTable:
|
|||||||
return
|
return
|
||||||
|
|
||||||
def insert_one(self, vals):
|
def insert_one(self, vals):
|
||||||
for i in range(0, len(vals)):
|
for i in range(len(vals)):
|
||||||
if type(vals[i]) == str:
|
if type(vals[i]) == str:
|
||||||
vals[i] = "'" + vals[i] + "'"
|
vals[i] = "'" + vals[i] + "'"
|
||||||
else:
|
else:
|
||||||
vals[i] = str(vals[i])
|
vals[i] = str(vals[i])
|
||||||
sql = "INSERT INTO " + self.table_name() + "("
|
# sql = "INSERT INTO " + self.table_name() + "("
|
||||||
sql += ", ".join(self.column_names_without_id()) + ") VALUES("
|
# sql += ", ".join(self.column_names_without_id()) + ") VALUES("
|
||||||
sql += ", ".join(vals) + ")"
|
# sql += ", ".join(vals) + ")"
|
||||||
|
query = "INSERT INTO " + self.table_name() + "(" + ", ".join(self.column_names_without_id()) + ") VALUES(%s)"
|
||||||
|
print(query)
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
|
values = ", ".join(vals)
|
||||||
# cur.execute(sql)
|
# cur.execute(sql)
|
||||||
try:
|
try:
|
||||||
cur.execute(sql)
|
cur.execute(query, (values,))
|
||||||
self.dbconn.conn.commit()
|
self.dbconn.conn.commit()
|
||||||
except psycopg2.errors.UniqueViolation:
|
except psycopg2.errors.UniqueViolation:
|
||||||
self.dbconn.conn.rollback()
|
self.dbconn.conn.rollback()
|
||||||
|
|||||||
@@ -15,11 +15,13 @@ TODO:
|
|||||||
3) Устранить SQLi с помощью санации атрибутов - Не выполнено
|
3) Устранить SQLi с помощью санации атрибутов - Не выполнено
|
||||||
|
|
||||||
FIXME:
|
FIXME:
|
||||||
|
1) Не работает санация для insert_one!
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
class Main:
|
class Main:
|
||||||
|
|
||||||
|
|
||||||
config = ProjectConfig()
|
config = ProjectConfig()
|
||||||
connection = DbConnection(config)
|
connection = DbConnection(config)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -14,18 +14,21 @@ class CathTable(DbTable):
|
|||||||
return ['CONSTRAINT "Name" UNIQUE (cath_name)']
|
return ['CONSTRAINT "Name" UNIQUE (cath_name)']
|
||||||
|
|
||||||
def delete(self, val):
|
def delete(self, val):
|
||||||
sql = "DELETE FROM " + self.table_name()
|
# sql = "DELETE FROM " + self.table_name()
|
||||||
sql += " WHERE cath_name"
|
# sql += " WHERE cath_name"
|
||||||
sql += "=" + "'" + "".join(val) + "';"
|
# sql += "=" + "'" + "".join(val) + "';"
|
||||||
|
param_sql = "DELETE FROM cath WHERE cath_name = %s;"
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
cur.execute(sql)
|
value = "".join(val)
|
||||||
|
cur.execute(param_sql, (value,))
|
||||||
self.dbconn.conn.commit()
|
self.dbconn.conn.commit()
|
||||||
|
|
||||||
def find_by_name(self, name):
|
def find_by_name(self, name):
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
sql_sel = "SELECT id FROM " + self.table_name()
|
param_query = "SELECT id FROM cath WHERE cath_name = %s;"
|
||||||
sql_sel += " WHERE cath_name = " + "'" + name + "'" + ";"
|
# sql_sel = "SELECT id FROM " + self.table_name()
|
||||||
cur.execute(sql_sel)
|
# sql_sel += " WHERE cath_name = " + "'" + name + "'" + ";"
|
||||||
|
cur.execute(param_query, (name,))
|
||||||
ret = cur.fetchone()
|
ret = cur.fetchone()
|
||||||
return list(ret)[0]
|
return list(ret)[0]
|
||||||
# sql = "SELECT * FROM " + self.table_name()
|
# sql = "SELECT * FROM " + self.table_name()
|
||||||
|
|||||||
Reference in New Issue
Block a user