Python向MYSQL插入时面临的问题

时间:2019-07-19 11:08:22

标签: python mysql insert

我尝试使用几种方法将数据插入mysql数据库,但全部出错: 在第一种方法中:

sql = ('''Insert into lgemployees (EmpID,Name,Gender,DOB,Address,PhoneNumber,Email)        
 VALUES (%d,$s,$s,$s,$s,$d,$s)''', (eid, name, gen, dob, add, mob, email))

mycursor.execute(sql)
mycursor.commit()

此方法中的错误:

'tuple' object has no attribute 'encode'

第二种方法:

sql = "Insert into lgemployees (EmpID,Name,Gender,DOB,Address,PhoneNumber,Email)  VALUES(?,?,?,?,?,?,?,)"
val =  (eid, name, gen, dob, add, mob, email)
mycursor.execute(sql, val)
mycursor.commit()

此方法中的错误

    "Not all parameters were used in the SQL statement")
mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement

我从头到尾都进行了很多故障排除,但是没有运气。任何人都可以帮忙,因为我在哪里错了,或者从python将数据插入到mysql中还有什么更好的选择。

1 个答案:

答案 0 :(得分:1)

我不知道您的错误在哪里,但是我用此代码进行了测试,并且可以正常工作。

        insert_tuple = (eid, name, gen, dob, add, mob, email)
        sql = """INSERT INTO lgemployees (`EmpID `, 
        `Name`,`Gender`, `DOB`, `Address`, `PhoneNumber`, `Email`)
        VALUES (%s,%s,%s,%s,%s,%s,%s)"""
        mycursor = mySQLconnection.cursor()
        mycursor.execute(sql, insert_tuple)
        mySQLconnection.commit()
        mycursor.close()

您的代码将抛出此错误,因为其中一个参数为空或其格式无法读取。

  "Not all parameters were used in the SQL statement")
    mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement