数据库(字典)中的语法错误 (Python)

Syntax error in database (dictionary) (Python)

我正在尝试将姓氏值插入“测试”table,但出现异常。我的问题是我无法将字典的字符串表示形式插入 table.

Exception thrown: OperationalError
next to "Surname": syntax error

我的代码:

con = sql.connect('test.db')
with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS `test` (`name` STRING, `surname` STRING)")
    name = input("Name\n> ")
    surname = str({'Surname': 1})
    cur.execute(f"INSERT INTO `test` VALUES ('{name}', '{surname}')")

    con.commit()
    cur.close()

使用占位符将使您无需清理输入(并使用引号乱搞),并保护您免受 SQL 注入攻击。

根据第 con = sql.connect('test.db') 行,我猜您正在使用 sqlite3。如果你不一样,原则应该仍然成立,但占位符的确切语法可能会有所不同:

cur.execute("INSERT INTO `test` VALUES (?, ?)", (name, surname))