簡體   English   中英

Codeigniter發生數據庫錯誤,錯誤號:1064

[英]Codeigniter A Database Error Occurred Error Number: 1064

我們有時會在Google Chrome瀏覽器中遇到1064數據庫錯誤。 但在其他瀏覽器中也能正常工作。 請讓我知道您有任何解決方案。

錯誤代碼:

發生數據庫錯誤,錯誤號:1064您的SQL語法中有錯誤;請參見表11。 檢查與您的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;
    }
}

請加

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

如果沒有任何東西,它將設置user_id為零

查詢失敗,因為會話中的user_id為空。 我建議如果user_id為空,則返回false(通過檢查它是否為null),我什至編寫了一個查詢生成器get,具有轉義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;
    }
}

您需要為用戶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;
 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM