我正在制作一个python程序,你可以使用sqlite输入,编辑和删除数据。我知道这可能是一个基本问题,但是当我尝试使用我的变量编辑数据时,会出现错误,提示更改名称不是列。任何想法
def userchange():
search = input("please enter a name to search for")
changename = input("please enter name to change it to")
sql = """UPDATE users SET FirstName = (changename) WHERE FirstName = (search)"""
cursor.execute(sql)
conn.commit()
答案 0 :(得分:1)
感谢最终的帮助,我发现这种方法效果最好
import Control.Monad
instance Applicative SomeMonad where
pure = return
(<*>) = ap
instance Functor SomeMonad where
fmap = liftM
答案 1 :(得分:0)
execute方法应该接受要替换到查询中的参数。 https://www.python.org/dev/peps/pep-0249/#id15
例如,如果您使用的是pyscopg2,那就像
def userchange():
search = input("please enter a name to search for")
changename = input("please enter name to change it to")
sql = """UPDATE users SET FirstName = %s WHERE FirstName = %s"""
cursor.execute(sql, (search, changeme))
conn.commit()
http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries
警告永远不要,永远不要使用Python字符串连接(+)或字符串参数插值(%)将变量传递给SQL查询字符串。甚至在枪口下也没有。 - pyscopg2 docs