归档 2010年10月11日

最后更新于 .

之前用mysql的时候一直是在用短链接,调用mysql_store_result获取一次数据之后就直接调用:


mysql_free_result(m_result);
mysql_close(m_Database);

但是有两个问题:

1.当使用长连接时(即connect之后一直不close),如果最后会调用mysql_close,需不需要每次都调用mysql_free_result呢?

2.当mysql_close调用之后,m_result的数据是否还可以用。

先说一下结论:
1.必须每次调用。因为经过测试,每次mysql_store_result的指针都是不同的,可见并不是共享了同一块buf。

2.还是可以使用。经过valgrind扫描,只调用mysql_close的扫描结果是:


==9397== 16,468 (88 direct, 16,380 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 5
==9397== at 0x40219B3: malloc (vg_replace_malloc.c:195)
==9397== by ...

昨天

2010年10月9日

明天

2010年10月21日

归档