【问题标题】:Querying a MySQL database using tkinter variables使用 tkinter 变量查询 MySQL 数据库
【发布时间】:2019-04-22 00:58:47
【问题描述】:

我正在尝试使用 tkinter 选项菜单的结果形式执行查询。

Option菜单的定义如下:

EventToEditOptionMenu = tk.OptionMenu(EditEventsFrame,EditEvent,*EventList)
EventToEditOptionMenu.grid(row=2,column=2)

EditEvent 中包含的内容的典型示例如下所示:

('uytrds',)

我无法成功执行 SQL 查询,导致错误:

ValueError: Could not process parameters

这是表格的截图:

EventSQL=("SELECT eventname, startdate, enddate, starttime, endtime, cost, limits FROM events WHERE eventname=%s")
print(EditEvent.get())
mycursor.execute(EventSQL,EditEvent.get())
myresults=mycursor.fetchall()
print(myresults)

【问题讨论】:

  • 你确定你从EditEvent.get()得到一个元组吗?文档表明 get() 返回一个字符串。
  • @WillKeeling 可能是一个字符串。当我做Event.get()[4] 我得到t

标签: python mysql tkinter


【解决方案1】:

根据您的评论,我怀疑问题在于您将字符串作为第二个参数传递给mycursor.execute(),而不是包含字符串的元组。

在传递之前尝试将EditEvent.get() 的结果包装在一个元组中: 例如:

mycursor.execute(EventSQL, (EditEvent.get(), ))

【讨论】:

  • 这不起作用:(我确实相信EditEvent.get()是一个字符串,但是当执行SQL命令时它不返回任何结果,尽管给出了正确的eventname
  • 好的,听起来好像您已经解决了 could not process parameters 的原始问题,现在 SQL 查询实际上正在运行,但只是没有匹配任何内容。如果在 mysql 命令行中手动运行 SQL 查询,值为EditEvent,会产生任何结果吗?
  • 这是 SQL 语法正确的证明。 imgur.com/a/kbmTia7
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 2021-11-01
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多