Как передать имя переменной в запросе MySQL, используя Python

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

Как дать имя переменной в запросе? Любая помощь будет принята с благодарностью!

0

Решение

Попробуй это:
Обратите внимание, как я передаю переменную в качестве параметра в функцию 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()
2

Другие решения

Пытаться

INSERT INTO table_name (name) VALUES ('selva')
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector