在python项目中,向数据库插入int型字符,惯用%d,然后出现报错%d format: a number is required, not str。
解决办法: 传给sql的变量写对格式就行了,sql里不需要对对应的变量写%d,只写%s就可以了!
例如:
创建数据库:Id为int型主键。
SQL = """CREATE TABLE phone_member (`Id` int (5) NOT NULL,`Name` varchar (8) NOT NULL,`PNumber` varchar (20) DEFAULT NULL,`OtherMsg` varchar (100) DEFAULT NULL, PRIMARY KEY (`Id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
"""
插入数据:
cursor.execute(
" insert ignore into phone_member(Id,Name,PNumber,OtherMsg) values(%s,%s,%s,%s)",
(Id, Name, PNum, Other))
完美运行,解决。