我试图使一个函数传递参数并在jupyter中返回查询,但它返回以下错误"并非所有参数都在SQL语句中使用"
现在我使用:
进行连接import mysql.connector as connection
import pandas as pd
db = connection.connect (parameters of connection)
我的函数必须传递3个参数,并根据这些参数返回数据框及其查询,所以我正在做:
def param (id, id_user, date):
cursor = db.cursor()
if (id == '' or None) and (id_user == '' or None) and (date == '' or None):
query = 'select * from database'
df = pd.read_sql(query, db)
elif (id_user == '' or None) and (date == '' or None):
query = 'select * from database where id = %s'
df = pd.read_sql(query, db, params = id)
else:
print(':(')
return df
当我执行时出现错误:
param (18, '', '')
我做错了什么?
尝试传递一个元组作为params
的值:
query = 'select * from database where id = %s'
df = pd.read_sql(query, db, params = (id,)) # change is here
在您当前的代码中,您直接传递了单个变量id
,但最有可能的是它期待一个元组。