发生数据库错误错误号:1064

时间:2015-08-05 12:11:41

标签: php mysql codeigniter

我一直致力于一个项目而且我想要弄清楚如何在Codeigniter 3中制作UNION Mysql方法,我无法找到我遇到的问题,这是我创建的模型文件,可以帮助:

class Reference_model extends CI_Model {
function  search($term,$orig){
    //Affichage des produits par référence
    $this->db->select('*')
        ->distinct()
        ->from('tReference')
        ->like('sReference',$term)
        ->or_like('nReference', $term)
        ->or_like('sSearch', $term)
        ->or_like('sSort', $term)
        ->get();
    $q1 = $this->db->last_query();
    if (isset($orig)) {
    $this->db->select('nManufacturer')
        ->distinct()
        ->from('tManufacturer')
        ->where_in('nManufacturer=tReference.nManufacturer')
        ->get();
    $q2 =  $this->db->last_query();
    }else {
    $q2='';
    }

    $query = $this->db->query($q1." UNION ".$q2);
    $ret = array();
    $ret['rows'] = $query->result();
    $ret['number'] = $query->num_rows();

    return $ret;
}
}

谢谢大家的帮助

1 个答案:

答案 0 :(得分:0)

如果您尝试获取两个查询的UNION,则需要列(正在选择的列)的名称应相同。

在您的情况下,在第一个查询select('*')和第二个select('nManufacturer')中,我确信这两个查询正在选择不同的列。