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

时间:2018-04-09 04:31:10

标签: php mysql codeigniter google-chrome

我们有时会在Google Chrome浏览器中遇到1064数据库错误。但它在其他浏览器中运行良好。请告诉我你的任何解决方案。

错误代码:

  

发生数据库错误错误号码:1064您的错误   SQL语法;查看与MySQL服务器对应的手册   正确的语法版本在''第1行选择*附近使用   tbl_user_rights其中usr_id = **

文件名: helpers/common_helper.php 行号:42 **

程序代码: -

function user_has_right($rights_id) {
    $CI = get_instance();
    $CI->load->model('user_model');
    $user_id = $CI->session->userdata('user_id');
    $query = $CI->db->query("select * from " . TBL_USERS_RIGHTS . " where usr_id=" . $user_id);
    $rights = $query->result();
    $user_right = array();
    foreach ($rights as $right) {
        array_push($user_right, $right->sm_id);
    }// print_r($user_right);exit;
    if (in_array($rights_id, $user_right)) {
        return TRUE;
    } else {
        return FALSE;
    }
}

3 个答案:

答案 0 :(得分:0)

请添加

$user_id = $CI->session->userdata('user_id');
$user_id = ($user_id && is_numeric($user_id)) ? $user_id : 0;

如果没有得到任何东西,它会将user_id设置为零

答案 1 :(得分:0)

查询失败,因为user_id在会话中为空。我建议如果user_id为空(通过检查它是否为空),则返回false,我甚至编写了一个查询构建器,它具有逃避user_id的好处:

function user_has_right($rights_id) {
    $CI = get_instance();
    $CI->load->model('user_model'); // not sure where this is being used...
    $user_id = $CI->session->userdata('user_id');
    if (is_null($user_id)) {
        return false;
    }
    $query = $CI->db->get_where('tbl_users_rights', array('usr_id' => $user_id));
    //$query = $CI->db->query("select * from " . TBL_USERS_RIGHTS . " where usr_id=" . $user_id);
    if ($query->num_rows() == 0) {
         return false;
    }
    $rights = $query->result();
    $user_right = array();
    foreach ($rights as $right) {
        array_push($user_right, $right->sm_id);
    }// print_r($user_right);exit;
    if (in_array($rights_id, $user_right)) {
        return TRUE;
    } else {
        return FALSE;
    }
}

答案 2 :(得分:0)

您需要为是否存在用户ID添加条件。尝试将条件设置为以下代码。希望这可以帮助您解决这个问题。

function user_has_right($rights_id) {
$CI = get_instance();
if($CI->session->userdata('user_id') != '')
{
    $CI->load->model('user_model');
    $user_id = $CI->session->userdata('user_id');
    $query = $CI->db->query("select * from " . TBL_USERS_RIGHTS . " where usr_id=" . $user_id);
    $rights = $query->result();
    $user_right = array();
    foreach ($rights as $right) {
        array_push($user_right, $right->sm_id);
    }// print_r($user_right);exit;
    if (in_array($rights_id, $user_right)) {
        return TRUE;
    } else {
        return FALSE;
    }
 }
 else
 {
      return FALSE;
 }
}