gpt4 book ai didi

python - 编程错误 1064

转载 作者:行者123 更新时间:2023-11-29 08:47:52 25 4
gpt4 key购买 nike

当我尝试使用以下 SQL 从 MySQL 数据库获取一些结果时,

entries = db.query("SELECT * FROM users ORDER BY created_at DESC LIMIT %s", count)

我收到此错误:

File "/Library/Python/2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''20'' at line 1")

我真的不知道我的 SQL 脚本出了什么问题。事实上,它在我之前的 PHP 版本的服务器中运行得很好。为什么它在我的 Python 版本中不起作用?它有与 Tornado 数据库包装器相关的具体内容吗?

我尝试搜索整个互联网,但没有成功。 :(

最佳答案

您正在使用“%s”占位符,因此 count值(显然是 20)被引用(这使得您的查询以 LIMIT '20' 结尾)。尝试使用'%d'相反。

嗯,正如 Cole Maclean 所说,你不能在这里使用非“%s”占位符;至少可以说,这使得我的解决方案有点错误。

但原因仍然相同:LIMIT 参数应该是数字,而不是“数字字符串”。但引号以某种方式到达了最终查询:MySQL 错误消息显然是关于 LIMIT '20' 行。

这可能是由 MySQLdb 库中的错误引起的,或者可能是给count赋予了错误的值。变量:字符串'20' (引号作为其中的一部分)而不是数字 20。我承认,这两种情况对我来说似乎不太可能。

您可以使用硬编码文字代替 count 来测试此查询吗? ?就像...

db.query("SELECT * FROM users ORDER BY created_at DESC LIMIT %s", 20)

关于python - 编程错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12095879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com