python - 为什么这个查询不能从 python 到 SQL?

标签 python mysql valueerror

我是编码和数据库的新手,如果我手写的话,我无法使查询工作,但我有很多事情要做,想在函数中使用它,但无法让它工作,它返回一个参数错误

import  mysql.connector

def connection_check_1(query, value):

    mydb = mysql.connector.connect(
        host="******",
        user="*****",
        passwd="*****",
        database="****"
    )

    mycursor = mydb.cursor()
    mycursor.execute(query, (value))
    myresult = mycursor.fetchall()
    mydb.close()
    return myresult

value = "sheep"
query = 'select inlicence from licence where animal = %s'
myresult = connection_check_1(query, value)
print(myresult)

这是我的 SQL 表

create table licence 
(
    animal varchar (20) primary key,
    inlicence int (1)
);

这是我得到的错误

Traceback (most recent call last):
File "*******************", line 20, in
myresult = connection_check_1(query, value)
File "********************", line 13, in connection_check_1
mycursor.execute(query, (value))
File "********************************************88", line 246, in execute
prepared = self._cnx.prepare_for_mysql(params)
File "/home/kev/PycharmProjects/test bed/venv/lib/python3.5/site-packages/mysql/connector/connection_cext.py", line 535, in prepare_for_mysql
raise ValueError("Could not process parameters")
ValueError: Could not process parameters

我尝试改变查询的编写方式,将其更改为fetchall()

最佳答案

() 包装一个值不会将它变成一个元组。您可能打算在那里添加一个逗号:

mycursor.execute(query, (value,))
# Creates a one-element tuple-^

关于python - 为什么这个查询不能从 python 到 SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53895560/

相关文章:

python - Python Flask 中的相对导入似乎不起作用

python - 用于迭代 Python 列表的开始索引

python - 移动水桶和出生/死亡计数

python - Selenium 蟒 : How to get css without targetting a specific class/id/tag

MYSQL,这种请求可以吗?

python - Python 中的函数求和

python - Python 的轻量级标记语言

php - 在 PHP 中检查图像高度/宽度

mysql - Openbravo Mysql db脚本语法错误

python - 连接层的 ValueError(Keras 函数式 API)