我正在研究一个简单的程序,并尝试从数据库中提取一些信息。我正在使用的数据库中的表称为名称。如果我做这样的事情:
self.cursor.execute("""select * from names WHERE first_name = 'Sarah' """)
for row in self.cursor.fetchall():
print(row[0])
我得到了我想要的东西。但是,如果我将该名称更改为变量,并执行以下操作:
name = input('Enter First name: ')
self.cursor.execute("""select * from names WHERE first_name=%s""", (name))
我收到以下错误:mysql.connector.errors.ProgrammingError:1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'%s'附近使用正确的语法
我知道这个网站上还有其他帖子接近我的问题,我从他们那里尝试的内容似乎不起作用。我也尝试过一些教程,但仍然遇到此错误。所以任何帮助将不胜感激!谢谢!我使用的是mysql.connector,Python 3.4和Flask。
答案 0 :(得分:0)
好的,我自己找到了答案。我不得不这样做:self.cursor.execute(查询,(名称,)),发现答案深入挖掘,我找到了这个网站:Python MySQL Connector database query with %s fails