我正在尝试编写一个函数,使用pymysql将记录添加到数据库中。当我使用字符串时,它起作用了,但是当我尝试混合字符串和整数时,它就不起作用了。
def dodawanie_do_bazy(a,b,c,e):
connection = pymysql.connect(host='localhost',
user='root',
password='',
db='dbprojekt',
charset='utf8mb4',
cursorclass=pymysql.cursors.SSDictCursor);
try:
with connection.cursor() as cursor:
sql="INSERT INTO `Czlonek` (`imie`,`nazwisko`,`wydzial`,`telefon`,`mail`) VALUES (%s,%s,%s,%d,%s)";
cursor.execute(sql,(a,b,c,456798136,e));
connection.commit()
finally:
connection.close();
1条答案
按热度按时间n6lpvg4x1#
作为错误
错误是typeerror:%d格式:需要数字,而不是str
显然,它需要
%s
格式化而不是%d
. 格式字符串并不是真正要使用的python格式字符串%d
. 你必须始终使用%s
对于所有字段只是从
VALUES (%s,%s,%s,%d,%s)
至VALUES (%s,%s,%s,%s,%s)
会解决你的问题。