[英]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.