【发布时间】:2012-07-26 14:29:53
【问题描述】:
我正在尝试使用 MySQL 通过 Python 执行查询以搜索数据库中的 3 个表。每次我尝试将以下字符串作为查询执行时,它都会给我一个关于字符串连接的错误。
"SELECT fileid FROM files WHERE description LIKE '%" + search + "%' OR filename LIKE '%" + search + "%' OR uploader LIKE '%" + search + "%' ORDER BY fileid DESC"
这是它给我的错误:
ValueError: unsupported format character ''' (0x27) at index 1
如果我删除了它要求的字符,那么我还必须删除 %,这会阻止查询实际正常工作。我能做些什么来解决这个问题,因为我对 Python 还很陌生。
谢谢, 克里斯
【问题讨论】:
-
为您的 SQL 工具使用内置的字符串替换工具,而不是尝试使用标准 Python 字符串机制自己构建查询字符串。这样效果更好。你在用 MySQLdb 吗?
-
是的,我正在使用 MySQLdb,我在哪里可以找到这些替代工具?
-
mysql-python.sourceforge.net/… 的文档说,“请注意,传递给 execute() 的查询字符串中的任何文字百分号都必须转义,即 %%。”你在用
execute()吗? @Silas 提到的替换工具显示在mysql-python.sourceforge.net/MySQLdb.html#some-examples -
请检查以下答案是否仍然有效(适用于 Python 3.5+)。对我不起作用,它尝试了不同的方法。
标签: python mysql mysql-python