我遇到了像my previous question一样的问题,现在我认为我的会话有问题,因为对我的数据库的查询工作正常,除了在此问题中进行会话。 那个错误说:
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET `last_activity` = 1455780614, `user_data` = 'a:4:{s:9:\"user_data\";s:0:\"\"' at line 1
UPDATE SET `last_activity` = 1455780614, `user_data` = 'a:4:{s:9:\"user_data\";s:0:\"\";s:9:\"logged_in\";s:12:\"Sudah Loggin\";s:3:\"nip\";s:8:\"21212121\";s:5:\"akses\";s:4:\"user\";}' WHERE `session_id` = '2e72650df8541dcc3334394cfb7eef37'
Filename: libraries/Session.php
Line Number: 306
在我自动加载会话并插入加密密钥后发生这种情况。这是我的控制者:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Auth extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('user_m');
}
public function index() {
$this->load->view('login');
}
public function cek_login() {
$data = array('nip' => $this->input->post('nip', TRUE),
'password' => $this->input->post('password', TRUE)
);
$hasil = $this->user_m->cek_user($data);
if ($hasil->num_rows()==1) {
foreach ($hasil->result() as $sess) {
$sess_data['logged_in'] = 'Sudah Loggin';
$sess_data['nip'] = $sess->nip;
$sess_data['akses'] = $sess->akses;
$this->session->set_userdata($sess_data);
}
if ($this->session->userdata('akses')=='admin') {
redirect('admin');
}
elseif ($this->session->userdata('akses')=='member') {
redirect('user');
}
}
else {
echo "<script>alert('Gagal login: Cek nip, password!');history.go(-1);</script>";
}
}
}
?>
这是我的模特:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User_m extends CI_Model {
public function cek_user($data) {
$query = $this->db->get_where('pegawai', $data);
return $query;
}
}
?>
我这样做是为了进行多用户登录,但无法进行会话。 我正在为此项目使用 XAMPP 7.0.2 和 Codeigniter 3.0.4 。
答案 0 :(得分:0)
$sess_data['logged_in'] = 'Sudah Loggin';
$sess_data['nip'] = $sess->nip;
$sess_data['akses'] = $sess->akses;
$this->session->set_userdata($sess_data);
change this to given way
$sess_data = array(
'logged_in' => 'Sudah Loggin',
'nip' => $sess->nip,
'akses' => $sess->akses
);
$this->session->set_userdata($sess_data);
答案 1 :(得分:0)
参考此代码
public function login()
{
$this->load->library('session');
$a = $this->input->post('email');
$b = trim($this->input->post('password'));
$b1 = md5($b);
$c = 1;
$data = $this->userdata->userlogin($a,$b1,$c);
if($data)
{
echo true;
foreach ($data as $login)
{
$uid=$this->session->set_userdata('logId',$login->usr_id);
}
}
else
{
echo "Invalid username or password..!!!!";
$a=$this->input->post('email');
}
}
答案 2 :(得分:0)
对不起,我找到了问题的答案......
在我尝试再次下载最新的Codeigniter,并在我的项目中替换它,并重新配置我的项目后,我的查询被读取并成功执行,但会话没有。所以我试着调试我的代码2天,我发现(大约15分钟前)我的控制器中有一些奇怪的管理员/用户,没有<?php defined('BASEPATH') OR exit('No direct script access allowed');
而是<?php session_start();
所以我改变它,问题解决了。哦,如果有人发现:
库/ session.php文件
删除它!
这是我遇到此错误的第一个原因:
错误号:1064您的SQL语法出错;检查 与您的MariaDB服务器版本对应的手册 在'WHERE nip ='21212121'和密码='用户''附近使用的语法 第2行SELECT * WHERE nip ='21212121'AND password ='user'文件名: C:/xampp/htdocs/simpeg/application/models/User_m.php行号:7
感谢所有帮助过我的人......:D
答案 3 :(得分:0)
错误号码:1064
我在这工作了5个多小时。 没有会话登录,所有功能都正常工作,但登录和会话有问题。 最后我用最新的CI 3.1更改了我的系统文件夹。 刚打开 https://codeigniter.com/download
下载完整的CI3.x并从中提取复制系统文件夹,并将系统文件夹替换为您之前的系统文件夹。 请保留以前系统文件夹的备份以供参考。