从变量python msqldb

时间:2019-07-02 13:36:00

标签: python mysql-python

    #!/usr/bin/python

    import MySQLdb

    # Open database connection
    db = MySQLdb.connect("localhost","root","","project_one" )
    ahg="dfas223d";
    # prepare a cursor object using cursor() method
    cursor = db.cursor()

    #sql = """INSERT INTO emloyee(string_one)VALUES ('Mac424234')"""
    # Execute the SQL command
    cursor.execute("insert into emloyee(string_one) values(%s)",ahg)
    # Commit your changes in the database
    db.commit()

    cursor.execute("SELECT * FROM emloyee")
    results = cursor.fetchall()
    for row in results:
    print (row)

    db.close()

这是有错误的代码 TypeError:字节格式化期间并非所有参数都已转换

在处理上述异常期间,发生了另一个异常:

回溯(最近通话最近):  在第13行的文件“ E:\ gatim project \ module2 \ module4 \ modle4.py”   cursor.execute(“插入雇员(string_one)值(%s)”,ahg)   执行中的文件“ C:\ Users \ Raswanth \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ MySQLdb \ cursors.py”,第203行     引发ProgrammingError(str(m)) MySQLdb._exceptions.ProgrammingError:字节格式化期间并非所有参数都已转换

***************我找到了答案 cursor.execute(“插入雇员(string_one)值('%s')”%(ahg))****

1 个答案:

答案 0 :(得分:0)

我看不到ahg的定义位置,但是正如@Klaus D.指出的那样,您需要为此提供一个list参数,而不是一个定义。

通过编写cursor.execute("insert into emloyee(string_one) values(%s)",ahg),您仅插入一个值ahg,而这不是values(%s)试图做的。 values(%s)希望迭代多个值,而不是一个值,因此ahg必须是一个列表。

@Klaus D.对cursor.execute("insert into emloyee(string_one) values(%s)", [ahg])的建议就可以实现。