2012-04-04 5 views
8

Attualmente in mio controller, quando si aggiungono nuovi dati, a convalidare gli ingressi, e se ci sono dei problemi che consente a un utente conosciuto, altrimenti si passa i dati al modello di inserire nel databaseCodeigniter Inserisci database Fallimento

Come faccio ora a verificare che l'istruzione di inserimento funzioni correttamente nel modello e che un utente sappia se non lo ha fatto.

Un'istruzione di inserimento come di seguito, restituisce true o false, che può quindi essere restituita al controller?

$this->db->insert('Faviroute_Addresses', $address_data); 

Grazie per qualsiasi aiuto

risposta

24

È possibile utilizzare

if($this->db->insert('Faviroute_Addresses', $address_data)) 
{ 
    // Code here after successful insert 
    return true; // to the controller 
} 

Oppure si può utilizzare

$this->db->insert('Faviroute_Addresses', $address_data); 
if($this->db->affected_rows() > 0) 
{ 
    // Code here after successful insert 
    return true; // to the controller 
} 
+0

una cosa da notare che ho trovato di recente è se si utilizza $ this-> db-> affected_rows() per le query UPDATE, restituirà uno zero se la query è riuscita, ma nessuna informazione è stato cambiato da ciò che già esisteva nel ro w. –

1

Personalmente eviterei utilizzando il

$this->db->affected_rows() 

metodo per un inserto. SQLServer non restituisce un valore per un inserto, pertanto il valore restituito da

$this->db->insert(...) 

sarebbe più affidabile. Mi piacerebbe riservo affected_rows per la verifica "UPDATE" s :)

UPDATE:

La stessa cosa vale per

$this->db->delete() 

I affected_rows() la funzione non funziona in SQL Server una cancellazione ...