Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created December 11, 2018 00:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/35983501ecb91cfdbb0a057b8879490a to your computer and use it in GitHub Desktop.
Save parzibyte/35983501ecb91cfdbb0a057b8879490a to your computer and use it in GitHub Desktop.
func obtenerContactos() ([]Contacto, error) {
contactos := []Contacto{}
db, err := obtenerBaseDeDatos()
if err != nil {
return nil, err
}
defer db.Close()
filas, err := db.Query("SELECT id, nombre, direccion, correo_electronico FROM agenda")
if err != nil {
return nil, err
}
// Si llegamos aquí, significa que no ocurrió ningún error
defer filas.Close()
// Aquí vamos a "mapear" lo que traiga la consulta en el while de más abajo
var c Contacto
// Recorrer todas las filas, en un "while"
for filas.Next() {
err = filas.Scan(&c.Id, &c.Nombre, &c.Direccion, &c.CorreoElectronico)
// Al escanear puede haber un error
if err != nil {
return nil, err
}
// Y si no, entonces agregamos lo leído al arreglo
contactos = append(contactos, c)
}
// Vacío o no, regresamos el arreglo de contactos
return contactos, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment