如何修复将数据插入数据库mysql python

9nvpjoqh  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(317)

在数据库中插入数据时遇到问题。
这是密码。你能修好它吗

if (id=="" or Name=="" or Age=="" or Father_Name==""):
    Messagebox.showinfo('info', 'all fields required  You idiot')
else:
    conn= mysql.connect(host="localhost", user="root", password="", database="software")
    cursor=conn.cursor()
    cursor.execute("INSERT INTO information ('id','Name','Age', 'Father Name') VALUES  ('"+ id +"', '"+ Name +"', '"+ Age +"', '"+ Father_Name +"')")
    cursor.execute("commit");

    Messagebox.showinfo("info","Done succesfully");
    conn.close();
sqserrrh

sqserrrh1#

问题是在查询中引用字段名。使用反勾号而不是引号,或者什么都不使用。在这种情况下,您需要backticks,因为您有空间 Father Name .

cursor.execute("INSERT INTO information (`id`, `Name`, `Age`, `Father Name`) VALUES  ('"+ id +"', '"+ Name +"', '"+ Age +"', '"+ Father_Name +"')")

重要提示:为避免sql注入,请不要将用户输入连接到sql查询中。像这里一样分别传递数据。
一般来说,在mysql中应该避免在字段名中使用空格。

相关问题