我们有一个剧本,在过去的4年里运行得很顺利。它从SugarCRM应用程序中提取大量数据,然后打印一些报告。在
我使用pythonmysqldb来提取数据。在
db = mdb.connect('localhost', db_user, db_pass, db_name)
c = db.cursor()
statement = "
select a.email_address
, c.hits
, c.activity_date
, c.activity_type
from email_addresses a
, campaign_log c
, email_addr_bean_rel r
where c.target_id = r.bean_id
and r.email_address_id = a.id
and c.activity_type = 'targeted'
and c.campaign_id ='%s'
"%x
c.execute(statement)
rows = c.fetchall()
问题是在MySQL shell和phpmyadmin上执行SQL查询,并将正确的值作为结果。在
但是在pythonshell上
^{pr2}$不过,SugarCRM的版本在几周前就已经更新了,即使是在更新后,一切都很好。在
有什么问题吗?新版本有一些InnoDB表吗?在
我被难住了。欢迎提供任何指导。在
Edit——我复制了一个在mysql shell和phpmyadmin窗口上都能正确执行的SQL查询语句,并运行它,结果是一样的。它显示一个空元组,并且没有可用的SQL记录。在
我确信这个问题并不是因为传递字符串,因为这是每个人似乎都在建议的方向。在
我解决了这个问题。我把pythonmysql升级到最新版本。它至少设法告诉我其中一个MySQL表有错误。 修复了MySQL表,一切正常。在
对于任何面临类似问题的人,建议使用pip安装最新的MySQL python。确保在pip安装之前先安装。在
如果SQL查询需要参数“c.campaign_id='%s'”,则应在“c.execute(statement)”中指定它,例如:
相关问题 更多 >
编程相关推荐