【发布时间】:2014-11-18 10:52:37
【问题描述】:
如果我在字段中给出静态值,则插入 Myquery。但如果我给出变量名称,则会引发异常。 我的工作代码
import MySQLdb
import datetime
db = MySQLdb.connect("localhost","root","pass","selvapractice" )
cursor = db.cursor()
sql = "INSERT INTO selva(name) \
VALUES ('Selva') "
try:
cursor.execute(sql)
db.commit()
except:
print "dffds"
db.rollback()
db.close()
我的异常代码
import MySQLdb
import datetime
db = MySQLdb.connect("localhost","root","pass","selvapractice" )
cursor = db.cursor()
a="surya"
sql = "INSERT INTO selva(name) \
VALUES (%s) " %(a)
try:
cursor.execute(sql)
db.commit()
except:
print "dffds"
db.rollback()
db.close()
它打印 dfffds
如何在查询中给出变量名?任何帮助将不胜感激!
【问题讨论】:
-
一点都不像。
-
我检查了它在除块之外打印 dfffds
-
@Ignacio,我发现了错误,问题是我放 (%s) 而不是 ('%s')。现在我在查询中添加了单引号,它工作正常。谢谢您帮助确定问题。
-
这不是解决方法。这就是您创建不安全系统的方式。