2016-06-12 66 views
0

我正在尝试这段代码,并一直给我错误。 我想第三个cicle添加角色在表中的名称相同的行中,所以我想使用WHERE找到名称,但在SQL代码中的东西是错误的,我找不到什么。如何在python(MySQLdb导入)中正确使用INSERT数据?

for member in soup.findAll("div", {"class": "member-info"}): 
 
    for membername in member.findAll("div", {"class": "member-name"}): 
 
     print(membername.text) 
 
     mn=membername.text 
 
     cur.execute("""INSERT INTO team (name) 
 
     VALUES (%s)""", 
 
     [ 
 
     (membername.text) 
 
     ]) 
 
    for memberrole in member.findAll("div", {"class": ""}): 
 
     print(memberrole.text) 
 
     cur.execute("""INSERT INTO team (role) 
 
     VALUES (%s) 
 
     WHERE name=%s""", 
 
     [ 
 
     (memberrole.text), 
 
     (mn) 
 
     ]) 
 
db.commit() 
 
db.close()

回答

0

SQL INSERT总是创建一个新的行。如果你想改变现有行(或几行或全部行)使用UPDATE,这里UPDATE team SET role=%s WHERE name=%s

注意如果name没有被定义为表的(单柱)PRIMARY KEY或UNIQUE约束,这个代码可以创建一个额外的行具有相同的name与现有行,如果你重复这个过程无限这样的行数,这个UPDATE会影响所有这些行。