Gå til innhold

SQL query, insert viss ikke, replace? Codeigniter


Anbefalte innlegg

Skrevet

Hei,

 

Endelig satt meg halveis inn i et rammeverk, codeigniter. Funker kjempeflott!

Har et problem, jeg skal sette alle sessions inn i en tabell som heter sessions.

 

Det funker også kjempefint, men problemet er når man logger inn igjen, for andre gang. (jeg burde slette session når jeg logger ut/den blir for gammel, men er forsatt litt usikker på den delen. Har altså bare laget registrer og login til nå).

 

Får feilmelding om at den allerede eksisterer.

 

Jeg setter inn i databasen sånn:

				$this->db->insert('sessions', $userdata_array); 

 

Og får duplicate_entry error når jeg prøver å sette inn. (Har satt det ene feltet til unique, men vil bare overskrive, men vet ikke hvordan).

 

Noen tips?

Videoannonse
Annonse
Skrevet

Det er helt umulig å se alternativer uten at vi vet hva som er i userdataarray.

 

Det jeg tenker, hvis dette er registrerte brukere du følge, er å binde sessjonsinformasjon mot brukerobjektet så omgår du hele problemet.

 

Hvis dette er uregistrerte brukere så er forslaget til Mikkel en god løsning. Problemet er at du må inn i rammeverket og endre oppførselen til $this->db->insert()-funksjonen.

Skrevet

Bruk session klassen. Du kan skru på database der. Det er INGEN grunn til å gjøre dette manuelt sånn du gjør.

Utklipp fra login

	// Set session
	$session = array(
	'user_id' => $this->user_model->get_user_id($this->input->post('username')),
	'username' => $this->input->post('username'),
	'is_logged_in' => true
	);

	$this->session->set_userdata($session);

Utklipp fra logout

	$this->session->set_userdata('is_logged_in',FALSE);
	$this->session->unset_userdata('username');
	$this->session->sess_destroy();
	$this->message_model->success('You have been successfully logged out.');

Skrevet

I config.php

$config['sess_cookie_name']		= 'my_session';
$config['sess_expiration']		= 0; // Cookie never expires
$config['sess_encrypt_cookie']	= FALSE;
$config['sess_use_database']	= TRUE;
$config['sess_table_name']		= 'my_sessions';
$config['sess_match_ip']		= FALSE;
$config['sess_match_useragent']	= TRUE;
$config['sess_time_to_update'] 	= 300;

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...