我有个很奇怪的问题。我有一个在本地工作的SQL语句,但是相同的语句不能在远程ubuntu机器上工作(相同的mysql版本)。我认为这与驱动程序如何对SQL字符串进行编码有关。以下是我的发言:
group_ids = ('43ede7a1e1f048872c025867602dc54d', '43ede7a1e1f048872c025867602dc54d', '7a8ec12901c43606aee041f1e6d5b2d4', '0f57f4ad
cursor = connection.cursor()
cursor.execute( '''
SELECT
DISTINCT c.group_id
FROM
main_cue c
LEFT OUTER JOIN
main_passongroup p
ON
(c.group_id=p.group_id AND p.user_id=%s)
WHERE
c.group_id in %s
ORDER BY
p.timestamp ASC, c.id DESC''', (user.pk, group_ids))
results = cursor.fetchall()
print '>>> 1', results在我的本地机器上,它似乎是正确的sql编码语句,但在远程服务器上,只有在我硬编码确切的sql语句时,它才能工作。
是否有更好的方法对SQL语句进行编码?
发布于 2015-01-21 19:33:18
这似乎是一个过时版本的MySQLdb的问题,它没有正确地编码字符串。
我能够通过卸载MySQLdb,然后重新安装更新的版本(MySQL-python==1.2.5)来解决这个问题。
https://stackoverflow.com/questions/28075163
复制相似问题