使用Python插入变量MySQL不在数据库中显示

时间:2014-01-06 17:41:07

标签: python mysql

我遇到了一些问题,而且很可能是一些非常愚蠢的事情,我错过了,我觉得这里的事情很糟糕但是如果你们可以提供帮助,那将是很好的继承人我的代码

    import MySQLdb
# Open database connection
db = MySQLdb.connect("localhost", "testuser", "123", "test")
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Prepare SQL query to INSERT a record into the database.
number = 300
number1 = 5001



sql = "INSERT INTO PARTS (PART_NUMBER) VALUES (%d)"

try:
    number = 300
    # Execute the SQL command

    cursor.execute(sql,(number,))

    # Commit your changes in the database
    db.commit()
    print("Updated!")
except db.Error, e:
    print "Error %d: %s" % (e.args[0],e.args[1])
    # Rollback in case there is any error
    db.rollback()
    print("was rolled back")

# disconnect
db.close()

我运行后没有任何问题,但它没有出现在我的数据库中,当回想起数据时,没有人可以告诉我为什么? 谢谢你的时间。

1 个答案:

答案 0 :(得分:3)

您应始终使用%s,即使是数字。

sql = "INSERT INTO PARTS (PART_NUMBER) VALUES (%s)"

点击此处的第一个示例:http://mysql-python.sourceforge.net/MySQLdb.html#some-examples。它使用%smax_price变量,这是一个int。

引用链接:

  

在这个例子中,max_price = 5为什么在字符串中使用%s?因为MySQLdb会将其转换为SQL文字值,即字符串'5'。当它完成后,查询实际上会说“......价格<5”。