我使用变量名创建了一个sqlite3表,我还插入了一些值,我想使用表的变量名读取表的行值。
创建了一个表格,如下所示.....成功 表名通过kivy gui传递。
def exams_table(name):
x_table = '''CREATE TABLE {}(
user_id INTEGER PRIMARY KEY,
account VARCHAR(20) NOT NULL,
l_name VARCHAR(20) NOT NULL,
f_name VARCHAR(20) NOT NULL,
class VARCHAR(20) NOT NULL,
term VARCHAR(20) NOT NULL,
exam VARCHAR(20) NOT NULL,
math REAL(20) NOT NULL,
eng REAL(20) NOT NULL,
comp REAL(20) NOT NULL,
eng_t REAL(20) NOT NULL,
kis REAL(20) NOT NULL,
ins REAL(20) NOT NULL,
kis_t REAL(20) NOT NULL,
sst REAL(20) NOT NULL,
r_edu REAL(20) NOT NULL,
s_r_total REAL(20) NOT NULL,
science REAL(20) NOT NULL,
creative REAL(20) NOT NULL,
e_read REAL(20) NOT NULL,
s_read REAL(20) NOT NULL,
total_m REAL(20) NOT NULL,
mean_s REAL(20) NOT NULL,
pos INTEGER(20) NOT NULL,
total_p INTEGER(20) NOT NULL);'''.format(name)
cursor.execute(x_table)
成功插入如下所示的值...
cursor.execute('INSERT INTO %s(user_id, account, l_name, f_name, class, '
'term, exam, math, eng, comp, eng_t, kis, ins, kis_t, sst, r_edu, s_r_total, science, creative,'
'e_read, s_read, total_m, mean_s, pos, total_p)VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,'
'?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' % xam_table_name,
(self.pupil_number.text, c[0], c[1], c[2], self.exam_term.text, self.exam_type.text, self.math.text,
self.eng.text, self.eng_com.text, self.english_total(), self.kis.text, self.kis_com.text, self.swahili_total(), self.sst.text,
self.re.text, self.sst_re_total(), self.sci.text, self.crt.text, self.reading.text, self.s_reading.text,
self.total.text, self.mean.text, '', ''))
conn.commit()
现在我要起诉这些值,我正在阅读如下所示的
cursor.execute('select * from %s' % xam_table_name)
f = cursor.fetchall()
print(f)
然后我得到下面的错误
cursor.execute('select * from %s' % xam_table_name)
sqlite3.OperationalError: near " ": syntax error
我需要使用这些值来生成pdf报告。....请帮助,谢谢
答案 0 :(得分:1)
很难阅读代码,但是我的猜测是,当您执行select
时,变量xam_table_name
并不包含您认为的内容。在print(xam_table_name)
行上方放置cursor.execute(...)
行,以仔细检查xam_table_name
包含您当时认为的功能。