3
我有一個代碼片段,其連接到MySQL數據庫這樣的(而不是直接從代碼,所以可能有錯別字):連接失敗時是否需要mysql_close?
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
。
任何人都可以爲我闡述一些這方面的信息嗎?
我終於通過源代碼進行了檢查,看起來他們在'mysql_real_connect'的底部執行了一些free'ing內存操作,但它並不完全清楚它執行了所有'mysql_close'操作,所以我會接受這個答案。 – 2009-09-13 12:05:45