我们有时会在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;
}
}
答案 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;
}
}