【发布时间】:2013-01-12 00:07:13
【问题描述】:
考虑以下代码: 第一个查询不起作用,而第二个查询起作用。 问题是......因为我需要通过一个函数预先编写一个查询,所以这个函数返回一个变量作为'val'。所以我需要让第一个查询工作。第二个查询仅通过示例添加以显示当按字面意思使用“val”的内容时会发生什么。 请帮忙! 所以,我想插入一个日期时间,但也可以接受“无”。当前的错误是:
query = query % db.literal(args)
TypeError: not enough arguments for format string
现在是脚本:
#!/usr/bin/python
import MySQLdb as mdb
def prepare():
# Assume a database named 'db_test'
conn = mdb.connect(host = 'localhost', \
user = 'test', \
passwd = 'test', \
db = 'db_test')
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS TBL_TEST")
cur.execute("CREATE TABLE TBL_TEST(Moo1 DATETIME, Moo2 DATETIME)")
return cur
if __name__ == '__main__':
qry = "INSERT INTO TBL_TEST (Moo1, Moo2) VALUES (%s, %s)"
val = "('2012-04-03 08:40:39', None)"
cur = prepare()
cur.execute(qry, val) # NOK
cur.execute("INSERT INTO TBL_TEST (Moo1, Moo2) VALUES (%s, %s)", ('2012-04-03 08:40:39', None)) # OK
相信我 - 我搜索了整个世界但没有任何成功.. 提前致谢!
【问题讨论】:
标签: python mysql datetime insert null