Myquery вставляется, если я даю статическое значение в fields.but выдает исключение, если я даю имя переменной.
Мой рабочий код
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
Как дать имя переменной в запросе? Любая помощь будет принята с благодарностью!
Попробуй это:
Обратите внимание, как я передаю переменную в качестве параметра в функцию execute, это лучше для предотвращения атак внедрения SQL.
import MySQLdb
import datetime
db = MySQLdb.connect("localhost","root","pass","selvapractice" )
cursor = db.cursor()
a="surya"b="male"sql = "INSERT INTO selva(name, gender) VALUES (%s, %s)"try:
cursor.execute(sql, [a, b])
db.commit()
except:
print "dffds"db.rollback()
db.close()
Пытаться
INSERT INTO table_name (name) VALUES ('selva')