0

我有以下代码:

$stmt = $db->query("SELECT * FROM tagged_cards WHERE card_tags LIKE '%test%';");
$cards_data = $stmt->fetchAll(\PDO::FETCH_ASSOC);

当我执行它时,我收到以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'card_tags' in 'where clause'

但是,当我登录到数据库服务器并使用 MySQL 控制台(或 MySQL Workbench)进行完全相同的查询时,它成功地执行了预期的结果。

该表包含提到的列。

我已经消除了诸如拼写错误、错误连接到其他数据库或可能的缓存等因素。什么会导致这样的错误?

4

2 回答 2

0

错误信息清晰明确:表中没有这样的列。因此,您必须连接存在此类字段的数据库。

于 2013-11-13T19:04:58.373 回答
0

错误清楚地表明数据库中的表中card_tags不存在。tagged_cards

运行此查询以显示表中的列名tagged_cards。确保$db连接到与问题相同的数据库。

$stmt = $db->query("DESCRIBE tagged_cards");
$columnNames = $stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($columnNames);

下表似乎表明有 2 个 id 字段应该是不可能的。

桌子

原因是 #2 有一个领先的空间

字段输入

上面的查询Array ([0] => id [1] => id )在浏览器中返回,所以如果表名看起来正确,请检查前导空格。

于 2013-11-13T22:09:54.740 回答