【发布时间】:2013-11-16 21:56:24
【问题描述】:
当我运行基本选择查询(不是插入或更新)时,我不断收到一条错误消息,告诉我字段列表中有一个未知列。
在某一时刻,错误所指的名称是一列,但我已经重组了数据库,并且该表中不再有该名称的列。
有趣的是,仅当我从 PHP 查询数据库时才会发生此错误。如果我直接在服务器上运行查询(使用 phpMyAdmin 中的 SQL 选项卡),我不会收到任何错误。
在我看来,某处有一个我不知道的缓存需要清除。有任何想法吗?
更新
关于使用框架的评论。我没有使用任何花哨的东西,只是基本的 PHP/MySQL。我收到错误的一个例子是
$query = "SELECT * FROM table";
$relation = mysql_query($query) or die(mysql_error());
return $relation;
即使运行测试查询也会返回字段列表中未知列的错误,这很奇怪,因为我实际上并不是在寻找特定的列,而只是尝试检索所有内容。我以前从未遇到过这个问题。当您尝试将某些内容插入到不存在的列(或更新列)中时,通常会出现未知列。
【问题讨论】:
-
从未听说过!真的需要清除!
-
当您说从
PHP查询时,我猜您使用的是框架。您可能需要通知您的框架您的元数据已被修改。 -
我更新了一个例子
-
该示例不会导致错误。找到引发错误的特定代码行并发布您收到的特定查询和错误消息。通常,此错误消息的含义与它所说的完全相同 - 您正在尝试访问一个不存在的列。
-
这就是困难所在——我特意运行了一个 select * 查询来测试问题。它确实给了我这个错误。我试图查看除了引用特定列的查询之外,是否有其他原因可能会发生这种情况。对于这个问题,您还有其他可能的原因吗?