У меня есть фрагмент кода, который подключается к базе данных MySQL следующим образом (не напрямую из кода, поэтому возможны опечатки):
m_connectionHandler = mysql_init(NULL);
if (m_connectionHandler == NULL)
{
// MySQL initialization failed
return;
}
MYSQL *tmp = mysql_real_connect(m_connectionHandler,
m_hostname,
m_username,
m_password,
m_dbName,
m_port,
NULL,
m_flags);
if (tmp == NULL)
{
// Connect failed
mysql_close(m_connectionHandler);
return;
}
У меня вопрос, если mysql_close
(во втором условии if tmp == NULL
), в случае, когда mysql_real_connect
возвращает NULL, требуется, или если mysql_real_connect
освобождает для меня обработчик соединения при сбое?
В документации действительно говорится, что то, что вы получаете от mysql_init
, должно быть освобождено mysql_close
, но есть признаки того, что оно уже освобождено mysql_real_connect
после сбоя.
Может кто-нибудь пролить свет на это для меня?