#php #codeigniter #frameworks
#php #codeigniter #фреймворки
Вопрос:
Это моя ошибка
Произошла ошибка базы данных
Номер ошибки: 1064
У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с ‘SET `last_activity` = 1475713773, `user_data` = ‘a: 2:{s: 9: «user_data «; s: 0: «»‘ в строке 1
ОБНОВЛЕНИЕ УСТАНОВИЛО `last_activity` = 1475713773, `user_data` = ‘a: 2: {s: 9: «user_data «; s: 0: «»; s: 6: «userId «; s:1:»1»;}’ ГДЕ`session_id` = ‘738744d19c2e9e582af4afb59826e331’
Имя файла: C:/xampp/htdocs/CI3/system/database/DB_driver.php
Номер строки: 691
Это мой контроллер:
function login(){
$data['error']=0;
if($_POST){
$this->load->model('user');
$username=$this->input->post('username',true);
$password=$this->input->post('password',true);
$user=$this->user->login($username,$password);
if(!$user){
$data['error']=1;
} else {
$this->session->set_userdata('userID',$user['userID']);
//$this->session->set_userdata('user_type',$user['user_type']);
redirect(base_url().'posts');
}
}
$this->load->view('header');
$this->load->view('login',$data);
$this->load->view('footer');
}
Это моя модель:
function login($username,$password){
$where=array(
'username'=>$username,
'password'=>$password
);
$this->db->select()->from('users')->where($where);
$query=$this->db->get();
return $query->row_array('array');
}
Моя проблема в том, что я могу обнаружить недопустимые имя пользователя и пароль, но если я использую действительные имя пользователя и пароль, я получаю указанную выше ошибку.
Ответ №1:
Заметил несколько ошибок в вашем коде. Пересмотрите свою модель как ( select()
и row_array()
проблему)
function login($username,$password){
$where = array(
'username'=>$username,
'password'=>$password
);
$this->db->select('*')->from('users')->where($where);
$query=$this->db->get();
return $query->row_array();
}
Наконец, убедитесь, что ваша таблица `ci_sessions’ создана как
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
);
смотрите, это не session_id
совсем id
Комментарии:
1. та же ошибка, что и в моей таблице пользователей Идентификатор пользователя email имя пользователя пароль user_type
2. Я говорю, что у вас есть столбец с именем
session_id
вci_sessions
таблице, это имя столбца должно бытьid
3. youtube.com/watch?v=wW7jPRiDs4A я слежу за этим. итак, я не знал, где я могу редактировать