我对这个MySQL查询有点问题。我已经使用过我在另一个问题中看到过的建议,但仍然无效......
这是代码
$kernel->db->query( "UPDATE `" . TABLE_PREFIX . "users`
SET `total_downs` = `total_downs` + 1
WHERE `phcdl_files`.`file_author` = " . $file['file_author'] );
哪个给出了
无效的SQL查询
'where子句'中的未知列'phcdl_files.file_author'(MySQL错误号; 1054)
答案 0 :(得分:5)
这意味着表phcdl_files中不存在列file_author。你可能想要
$kernel->db->query( "UPDATE " . TABLE_PREFIX . "users SET total_downs = total_downs + 1 WHERE file_author = " . $file['file_author'] );
编辑:请参阅上面Byron Whitlock的评论。您通常不希望将变量直接插入SQL查询字符串。
答案 1 :(得分:1)
如果phcdl_files
是表的名称,则需要在查询中包含该表,并在TABLE_PREFIXusers
中表示它与{{1}}中的行之间的某种关系想要更新。
答案 2 :(得分:1)
phcdl_files
。file_author
在哪里?
"UPDATE `" . TABLE_PREFIX . "users`
SET `total_downs` = `total_downs` + 1
WHERE `user`.`file_author` = " . $file['file_author']
和$ file ['file_author']应来自phcdl_files表