如何在我的代码点火器查询中解决错误1054

时间:2016-11-13 16:41:07

标签: php mysql codeigniter

我有一个代码点火器项目托管here,但我有错误号码:1054 未知栏' p.id'在' on条款'显示在网站上最受欢迎的部分。

以下是发出此错误的sql查询。

public function get_popular()
{
    // Using active records
    $this->db->select('P.*, COUNT(O.product_id) as total');
    $this->db->from('orders AS O');
    $this->db->join('products AS P', 'O.product_id = p.id','INNER');
    $this->db->group_by('O.product_id');
    $this->db->order_by('total','desc');
    $query = $this->db->get();
    return $query->result();        
}

这段代码可以解决这个问题

$this->db->join('products AS P', 'O.product_id = p.id','INNER');

该项目在我的本地计算机上正常运行,直到我在此处托管以供查看

1 个答案:

答案 0 :(得分:3)

这个很简单。您将表的别名声明为P - 大写字母:

$this->db->join('products AS P', ...)

然后通过一个较低的字母引用它:p.id

在Windows上,字母的情况 - Pp - 在Linux(可能由您的托管使用)上无关紧要。所以要修复此错误,只需输入:

$this->db->join('products AS p', 'O.product_id = p.id','INNER');

将来你可以使用严格的表格和字段小写名称,因为它可以在任何操作系统上使用。