2012-04-04 15 views
8

Actualmente en mi regulador, al agregar nuevos datos, puedo validar las entradas, y si hay algún problema que le permite a un usuario conocido, de lo contrario, pasa los datos al modelo para insertar a la base de datosCodeIgniter Insertar base de datos Fallo

¿Cómo hago ahora para verificar que la declaración de inserción funcionó correctamente en el modelo y le aviso a un usuario si no lo hizo?

¿Tiene una declaración de inserción como a continuación, devuelve verdadero o falso, que luego puede ser devuelto al controlador?

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

Gracias por cualquier ayuda

Respuesta

24

Puede utilizar

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

O puede utilizar

$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 que hay que notar es que si estás usando $ this-> db-> affected_rows() para consultas de actualización, devolverá un cero si la consulta tuvo éxito pero no hubo información fue cambiado de lo que ya existía en el ro w. –

1

Personalmente me gustaría evitar el uso de la

$this->db->affected_rows() 

método para una inserción. SQLServer no devuelve un valor para una inserción, por lo que tomar el valor de retorno desde

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

sería más confiable. Me reservo affected_rows para comprobar "UPDATE" s :)

ACTUALIZACIÓN:

Lo mismo se aplica para

$this->db->delete() 

Los affected_rows() función no está disponible en SQL Server en una eliminación ...

Cuestiones relacionadas