我需要帮助!!! sqlite3中输入错误,我是新手

时间:2019-08-06 07:26:39

标签: python sqlite

我创建了这个代码,他们让他们在学校里去做,但是我遇到了问题,因为在添加“ 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()

1 个答案:

答案 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)