如何在 python 中的 mysql 中使用带有变量的 select 语句

How to use select statements with variables in mysql in python

我想在 where 子句中使用带有变量的 select 语句。我在 How to use variables in SQL statement in Python? and Inserting Variables MySQL Using Python, Not Working 上对此进行了研究。我试图实施提供的解决方案,但它不起作用。错误代码

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1

代码如下:

name = input("Write your name")
mycursor.execute("SELECT name FROM workers WHERE symbol=?", name)

我做错了什么?

mycursor.execute("SELECT name FROM workers WHERE symbol=%s"% name)  

就是这样

MySQL 库使用 %s 作为占位符。

mycursor.execute("SELECT name FROM workers WHERE symbol=%s", name)

尽管相似,但这不是字符串替换。

好的 Spike7 这正是理想的,

mycursor.execute("SELECT name FROM workers WHERE symbol=%s", (name,))  

mycursor.execute("SELECT name FROM workers WHERE symbol=?", (name,)) 

the first link you given 上接受的答案解释了一切。

你可以使用

mycursor.execute("SELECT name FROM workers WHERE symbol={}".format(name))

这仅在您的变量名称不是字符串时有效