我创建了这个代码,他们让他们在学校里去做,但是我遇到了问题,因为在添加“ nombre”和“ autor”的过程中,他们使用raw_input做到了这一点,而在python 3.4.7中没有这样的功能。我已经尝试了输入法,但是它仅对数字有效,如果我使用字母,则会出现错误
import sqlite3
def insertar():
db1=sqlite3.connect('Novelas.db')
print("BIENVENIDO MAMAGUEVOOOO")
nombre1 =input()
autor1 = input()
year1 = str(input("Escribe el año de la novela "))
consulta=db1.cursor()
strConsulta= "insert into
tabla(nombre,autor,year)values("+nombre1+","+autor1+","+year1+")"
print(strConsulta)
consulta.execute(strConsulta)
consulta.close()
db1.commit()
db1.close()
insertar()
答案 0 :(得分:0)
问题在于您构建查询字符串的方式。字符串值需要用单引号引起来,否则它们将被解释为数据库对象(表名称,列名称等)。
strConsulta= "insert into tabla(nombre,autor,year) values ('"+nombre1+"','"+autor1+"',"+year1+")"
您可以通过使用参数化查询来避免此问题:
params = [nombre1, autor1, year1]
strConsulta= "insert into tabla(nombre,autor,year) values (?,?,?)"
consulta.execute(strConsulta, params)