php - update - ¿Cómo puedo saber cuándo fue exitosa una actualización de MySQL versus datos realmente actualizados?
validar insert mysql php (2)
¿Cómo puedo saber cuándo fue exitosa una actualización de MySQL versus datos realmente actualizados?
Ejemplo:
TABLE
id city_name
1 Union
2 Marthasville
Si ejecuto lo siguiente:
$data = array(''city_name'', ''Marthasville'');
//update record 2 from Marthasville to the same thing, Marthasville.
$this->db->where(''id'', 2);
$this->db->update(''table'', $data);
if($this->db->affected_rows() > 0)
{
//I need it to return TRUE when the MySQL was successful even if nothing was actually updated.
return TRUE;
}else{
return FALSE;
}
Esto devolverá TRUE
cada vez que la instrucción UPDATE sea exitosa, pero FALSE cuando no se actualicen realmente las filas.
Necesito que vuelva TRUE
cada vez que la instrucción UPDATE se ejecutó correctamente, incluso si en realidad no cambia ningún registro.
Eche un vistazo a mysql_affected_rows()
Debería decirle si realmente se actualizó algo, a diferencia de que nada se actualizó correctamente, lo que arrojó un resultado verdadero.
php.net dice:
mysql_affected_rows ()
Devuelve el número de filas afectadas en caso de éxito, y -1 si la última consulta falló.
Puede usar lo siguiente para lograr los resultados deseados:
if($this->db->affected_rows() >= 0){ }
Entonces mysql_query :
Las sentencias SQL, INSERT, UPDATE, DELETE, DROP, etc, mysql_query () devuelven TRUE en caso de éxito o FALSE en caso de error.
Simple como esto:
$result = $this->db->update(''table'', $data);
if($result)
{
//without error even no row updated
} else {
}