下面是代码:
a2 = input('Donor ID : ')
b2 = input('Donor Name : ')
c2 = int(input('Phone No. : '))
d2 = int(input('Age : '))
e2 = input('Blood Group : ')
f2 = int(input('Quantity donated : '))
g2 = input('Gender : ')
sql4 = "Insert into Donor('"+a2+"','"+b2+"','"+str(c2)+"','"+str(d2)+"','"+e2+"','"+str(f2)+"','"+g2+"')"
cursor.execute(sql4)
db.commit()
for x in cursor:
print(x)
我输入的数据是:
捐赠者ID:12
捐赠者姓名:Sam
电话:12345678
年龄:34岁
血型:B+
捐赠数量:3
性别:M
这是我得到的错误:
ProgrammingError: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''12','sam','12345678','34','b+','3','m')' at line 1
我是自己学的。请帮我这个。。。
1条答案
按热度按时间bq3bfh9z1#
根据您的代码,原因是您的sql中缺少
values
改变
到
那么它应该会起作用。
更新1:
您最好在sql中指定列名,以避免在表结构更改时出现潜在问题
更新2:
为了避免sql injection,您最好使用Prepared Statement传递参数,参考位于using-prepared-statements-with-mysql-in-python
例如下面的代码