试着问这些问题,但没用:Python MySQL Parameterized Queries
Python MySQLdb TypeError: not all arguments converted during string formatting
它总是给我这个错误:“您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,了解在“%s”附近使用的正确语法,以及第4行的e.MeetId=m.MeetId ORDER by e.eventId')
例如,当我使用一个数字时,在查询中为“meetId”输入1,它就起作用了。我试图让它与输入一起工作,但似乎什么都不起作用。在
每个不同的文件都用星号隔开,代码如下:
********mainFile.py********
from dbconfig import*
import pymysql
from datetime import datetime, date, time
import sys
db = get_mysql_param();
cnx = pymysql.connect(user=db['user'], password=db['password'],
host=db['host'],
database=db['database'])
cursor = cnx.cursor()
meetId = input("MeetId: ")
query = """
SELECT DISTINCT e.eventId as eventId, e.Title as title, concat(s.fname,
" ", s.lname) as sName,
if (Isnull(p.Comment), '', comment) as comment FROM Event e, Swimmer
s, Participation p, Meet m WHERE
s.SwimmerId = p.SwimmerId AND p.EventId = e.EventId AND
m.MeetId = %s AND e.MeetId = m.MeetId ORDER by e.eventId
"""
cursor.execute(query,(meetId, ))
******dbconfig.py file*******
import configparser
# simplistic and no error handling.
def get_mysql_param(filename='dbconfig.ini', section='mysql'):
config = configparser.ConfigParser()
config.read(filename)
return config['mysql']
******dbconfig.ini file*****
[mysql]
host = localhost
database = clystms
user = **********
password = *********
问题是“m.MeetId=%s”,它不想用我输入的任何内容替换查询中的“%s”。在
目前没有回答
相关问题 更多 >
编程相关推荐