python中向mysql数据库插入变量

list=[].........................sql="selectstudent.idfromstudent"cursor.execute(sql)d... list=[]
.........................
sql="select student.id from student"
cursor.execute(sql)
data = cursor.fetchone()
while data!=None:
...............
sql="insert censor vaules("+data[0]+","+list[i]+",'开机的流程')"
...............
最后一句报错TypeError: cannot concatenate(链接) 'str' and 'long' objects
如何如何改才能正确打印出sql
展开
 我来答
匿名用户
2017-07-27
展开全部
从错误提示来看是 str 和 object 无法拼接,这是表象错误,实际上,你根本用不着拼接 str 和 object ,你这句 insert 看起来是有问题的,写的很乱。首先你要理清 censor 这个表有几个字段,是什么类型,然后再在这里构造 insert ,这里的双引号是给 python 解析的,双引号中的 values 后的各值还要加单引号,那是给 mysql 看的,要用清醒的头脑认识到这点你才能拼接好。
改成这样试试,注意加了很多单引号:
sql="insert censor vaules('"+data[0]+"','"+list[i]+"','开机的流程')"
burufeiba
2014-07-13 · TA获得超过1375个赞
知道小有建树答主
回答量:246
采纳率:100%
帮助的人:335万
展开全部
sql="insert censor vaules("+data[0]+","+list[i]+",'开机的流程')"

list[i]是个长整型数,不能直接和字符串连接。用str(list[i])先转换它为字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妙趣横生happy9
2017-11-25
知道答主
回答量:1
采纳率:0%
帮助的人:930
展开全部
我想问一下 你的data的数据类型是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaoningwang
2014-07-11 · TA获得超过682个赞
知道小有建树答主
回答量:806
采纳率:83%
帮助的人:890万
展开全部
看着没逻辑错误。最后一个insert是不是少了into..
更多追问追答
追问
不是这个问题,主要是我在用print打印sql的时候变量没有被解析出来
追答
你得用cursor执行了sql负值给变量再打印变量啊,肯定不能直接打印sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式