列是会话变量的未知列错误?

时间:2011-04-18 18:19:02

标签: php mysql

我为查询得到了一个真的奇怪的错误。我正在使用CMS,当我在公共页面时查询工作正常,直到几个小时前,它也在管理页面中工作。

奇怪的是,当我去登录管理员时,由于引用了一个实际上根本不属于查询的未知列,它失败了,它是一个会话变量。

查询是;

select * from pages p, templates t, sites s where p.page_title_csv='uber,admin' AND p.page_template_id=t.template_id AND s.site_id=p.page_site_id

错误是;

Page selection query failed coz of:Unknown column 'this_site' in 'where clause'

它引用的列('this_site')实际上是我的会话变量之一,并且在查询中根本没有提到它,所以它如何导致错误对我来说是一个完全的谜。它在我的任何表格中都不是一个专栏。

我已经检查过了;

  • 数据库连接正常
  • 肯定有一个页面,其中page_title_csv为“uber,admin”(绝对只有一个)
  • 我尝试删除别名
  • 我甚至尝试将'like'改为'='
  • 销毁$ _SESSION并在关闭多个浏览器(Chrome,Firefox,Safari)后重新开始
  • 重新启动所有服务(运行Windows 7,Apache 2.2.17,PHP 5.3.5和MySQL 5.5.8)

我知道我最近没有改变表格结构,导致任何问题。正如我所说,它适用于所有公共页面,但不适用于任何管理员。

我唯一可能留下的线索是$ _SESSION ['this_site']有一个公共页面的设置,而管理员有一个不同的值,虽然为什么在它甚至不在查询中时这很重要超越我(特别是直到现在还好)。

任何帮助表示赞赏,现在是凌晨3点30分,所以在我让事情变得更糟的前一天晚上放弃......干杯

(最后一次尝试完全重启,如果我不是在一小时内再次发布,那也不起作用)

1 个答案:

答案 0 :(得分:0)

修正了它! Marc指出了方向 - 我开始向下看,发现页面中的嵌入式函数导致了狡猾的查询,因为我改变了在页面构建例程中处理call_user_func()的方式。如果不是为了帮助,我相信我会被困住更长时间。 (只是写下我的问题帮助我把它弄到脑子里,永远不要低估写下问题的力量)。

感谢所有观看/思考这个问题 - 我在过去几个月里遇到的几乎所有其他问题都是通过浏览Stackoverflow解决的,但这是我第一次发帖。对于程序员社区来说,最好的网站可以提供帮助,这部分是您在阅读和回复时的错误 - 非常感谢您!

相关问题