不能用pymysql执行查询?

2024-10-02 10:28:23 发布

您现在位置:Python中文网/ 问答频道 /正文

试着问这些问题,但没用: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”。在


Tags: andimportconfighostdbasmysqlpassword

热门问题