我需要帮助!!!sqlite3中的输入错误,我不熟悉这个

2024-10-01 13:45:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了这个,他们让我在学校做,但我有一个问题,因为在添加“nombre”和“autor”的部分,他们用原始输入,在python3.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()

Tags: 函数closeinputsqlite3学校printdb1consulta
1条回答
网友
1楼 · 发布于 2024-10-01 13:45:47

问题在于您构建查询字符串的方式。字符串值需要用单引号括起来,否则它们将被解释为DB对象(表名、列名……)。你知道吗

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)

相关问题 更多 >