CodeIgniter中发生数据库错误,错误号:1064

时间:2014-07-07 09:57:38

标签: php mysql sql codeigniter

我的查询有什么问题?当我执行该查询时,应用程序始终显示

  

错误号:1064您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在`acl_module_gro'中使用')d。{module_id = b。module_id)privileges附近的正确语法。在第5行"。

这是我的模特的功能:

    $str_group = '';
    $qry = "select * from acl_usergroup_member where user_id=$user_id";
    $j = $this->db->query($qry);
    if($j->num_rows > 0){
        $data = $j->result();
        foreach ($data as $row)
        {
            if($str_group=='')
            {
                $str_group .= $row->group_id;
            }else{
               $str_group .= ','. $row->group_id;
            }                
        }
    }
    $query = "select distinct id, name from (
        select `a`.id,`a`.name,`b`.module_id,`b`.module_group_id,
        `c`.module_name,`c`.description,`c`.module_url,
        (select max(priv) from `acl_usergroup_priv` `d` where
        `d`.group_id in ($str_group) and `d`.module_id=`b`.module_id)`privileges`
        from `acl_module_group` `a`
        inner join `acl_module_group_member` `b` on `a`.id=`b`.module_group_id
        inner join `acl_module` `c` on `b`.module_id=`c`.id)xview
        where `privileges` > 0";

    $i = $this->db->query($query);
    return ($i->num_rows > 0) ? $i->result() : array();

谢谢!

1 个答案:

答案 0 :(得分:0)

if($j->num_rows > 0){
        $data = $j->result();
        foreach ($data as $row)
        {
            if($str_group=='')
            {
                $str_group .= $row->group_id;
            }else{
               $str_group .= ','. $row->group_id;
            }                
        }
     $str_group = trim($str_group, ",");  <--- update this code here and check
    }

使用此代码更新您的代码可能会对您有所帮助。