我正在做一个关于使用PHP(使用Codeigniter)和MYSQL烹饪食谱的项目.
我有三张桌子:
Ingredients- id,name.Recipe- id,nameing_to_rep- recipe_id,ingredient_id(我用这个表来保存哪种食谱有哪些成分.)什么是"得到所有有蛋(id = 64)和盐(id = 65)的食谱"的查询
我试过了:
SELECT * FROM recipe JOIN ing_to_rep ON recipe.id = ing_to_rep.rep_id
WHERE ing_to_rep.ing_id = 64 AND ing_to_rep.ing_id = 65
Run Code Online (Sandbox Code Playgroud)
当然,它什么都不返回,但它可以帮助你获得我想要做的事情.
我们有一个在线商店的网络应用程序,由django,postgresql和heroku提供支持。
对于特定的广告系列(您可以考虑购买类似产品的广告系列),我们已经成功售出了1万多本。但是根据我们的Sentry报告,我们的一些用户遇到了此错误。这些用户的通用规范是;他们都没有购买前的地址信息。通常,用户在注册后立即填写地址表格。如果没有,他们需要在购买产品时填写表格并将其一起提交。
这是跟踪的样子:
OperationalError: cursor "_django_curs_140398688327424_146" does not exist
(66 additional frame(s) were not displayed)
...
File "store/apps/store_main/templatetags/store_form_filters.py", line 31, in render_form
return render_to_string('widgets/store_form_renderer.html', ctx)
File "store/apps/store_main/templatetags/store_form_filters.py", line 20, in render_widget
return render_to_string('widgets/store_widget_renderer.html', ctx)
File "store/apps/store_main/widgets.py", line 40, in render
attrs=attrs) + "<span class='js-select-support select-arrow'></span><div class='js-select-support select-arrow-space'><b></b></div>"
OperationalError: cursor "_django_curs_140398688327424_146" does not exist
Run Code Online (Sandbox Code Playgroud)
因此,另一个奇怪的普遍现象是,失败之前sql查询之间存在异常消息。您可以在下图中看到它:
如果它们有某种联系,我会添加它。可能还相关的是,收到此错误的用户是在批量发送邮件后立即尝试购买广告系列的用户。因此,大量的流量可能是我们还不确定的原因。
我们问Heroku这个问题,因为他们托管了postgres,但他们也没有任何线索。
我知道此错误的正式原因是尝试在提交后到达游标。由于它是在事务处理后销毁的,因此尝试到达它会导致此错误,但在我们的方案中我看不到此错误。我们没有以任何方式触摸光标。我想念什么?什么会产生此错误?怎么预防呢?任何想法,将不胜感激。