@nurdus

Почему sql.Open('mysql', wrongConnString) не возвращает ошибку?

Добрый день.
Решил "побаловаться" с go на практике. Не пойму почему (1) не возвращает ошибку?! Ошибка отлавливается на (3)
db, err := sql.Open("mysql", wrongConnString) // 1
  if err != nil {
    fmt.Println(err.Error())
  } else {
    fmt.Println("db is connected")
  }
  defer db.Close() // 2
  if err = db.Ping(); err != nil { // 3
    fmt.Println("db is not connected")
    fmt.Println(err.Error())
  }

И второе, если 1 переписать так, то go не видит переменную db (в строке 2):
if db, err := sql.Open("mysql", rightConnString); err != nil {
    //...
  }
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
Вероятно, ваш connString синтаксически верный, поэтому ошибка и не возникает. Само подключение к базе происходит уже потом.

Про второе. У вас переменная db создаётся внутри условия if, поэтому видна только в области видимости того блока. Создайте её до этого ифа.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы