我使用变量名创建了一个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 报告.....请帮忙,谢谢
很难阅读你的代码,但我的猜测是,当你做
select
时,你的变量xam_table_name
不包含你认为它包含的内容。在cursor.execute(...)
线上方放置一条print(xam_table_name)
线,以仔细检查xam_table_name
是否包含您当时认为它的作用。