MySQL中有一个简单的表
| 身份证|名称|
| --------------|--------------|
| 1|名称_1|
| ......这是什么?|......这是什么?|
我尝试通过name获取id(顺便说一下,它是主键)编号,使用以下代码
import mysql.connector
# ...create connection
def get_id(name):
cursor = connection.cursor()
query = """SELECT id FROM table WHERE name = %s"""
try:
cursor.executemany(query, [name])
# connection.commit() - it didn't help, and I use connection.autocommit = True
result = cursor.fetchall() # or cursor.fetchone()
return result
except Error as err:
print(f"The error '{err}' occurred")
但这只会返回一个空list []或None(取决于fetch方法)。
我已经尝试过修改代码,插入检查,如:
if result != None:
return(result)
使用cursor.stored_results()
。没用的
另外,如果在MySQL Workbench中使用SELECT id FROM table WHERE name = "name_1"
,它会输出正确的id。所以,我不明白有什么问题...
1条答案
按热度按时间dwbf0jvd1#
SELECT语句不能用于
exectutemany()
。将对executemmany()的调用更改为以tuple作为第二个参数的execute()。
有关executemmany()示例,请参见API docs