mysql 格式为 python 的连接器

mysql connector with python formating

我写了一个简单的脚本,向用户显示一个字母,他必须写一个以相同字母开头的人名,但是我在使用变量自动补偿列名时遇到了问题...是有什么建议吗?

如何用变量替换列名 let

import random
import mysql.connector

while True:
    letters = "AB"
    let = random.choice(letters)
    print(let)
    human = input("Human : ")
    db = mysql.connector.connect(host = 'localhost',
                                 user = 'root',
                                 password = '',
                                 database = 'test')
    mycs = db.cursor()


    mycs.execute(" SELECT * FROM human WHERE {} = {}".format(let,human))


    data = mycs.fetchall()

    if data:
        print("Name exists")
    else:
        print("Name does not exist")

mycs.close()

错误:

B

Human : brad

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\t.py", line 16, in <module>
    mycs.execute(" SELECT * FROM human WHERE {} = {}".format(let,human))
  File "C:\Program Files\Python39\lib\site-packages\mysql\connector\cursor.py", line 568, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "C:\Program Files\Python39\lib\site-packages\mysql\connector\connection.py", line 686, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "C:\Program Files\Python39\lib\site-packages\mysql\connector\connection.py", line 573, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column 'brad' in 'where clause'

您只需要将常量放在单引号之间的查询中:

(" SELECT * FROM human WHERE {} = '{}'".format(let,human))