汗,我居然在自己帖子看不到别人的回复,点击结贴给分才能看到mysql_init(); 初始化一个msyql对象,申请内存,初始化一些变量。 ------ 不准确 MYSQL * STDCALL mysql_init(MYSQL *mysql); 这个函数通过你的传参来决定是自动申请空间还是用户自己提供 我现在看到2种初始化的例子 MYSQL mysql; mysql_init(&mysql);和 MYSQL *mysql; mysql=mysql_init(NULL); mysql_real_connect(). 进行连接。 mysql_close() 关闭连接,并同时释放对象。所以说它对应于上面两个步骤。 ---- 根据是否malloc空间,MYSQL结构有个成员标示是否释放 my_bool free_me; /* If free in mysql_close */ 这样还有个疑问,如果mysql_real_connect失败或query失败是否要mysql_close()? 看有些书上这些情况没有mysql_close()
准确的说话你要参考一下官方手册了。MYSQL *mysql_init(MYSQL *mysql) Description Allocates or initializes a MYSQL object suitable for mysql_real_connect(). If mysql is a NULL pointer, the function allocates, initializes, and returns a new object. Otherwise, the object is initialized and the address of the object is returned. If mysql_init() allocates a new object, it is freed when mysql_close() is called to close the connection. 分配或仅初始化一个MYSQL对象用于 mysql_real_connect() 操作。如果传入*mysql为NULL,则会内存分配,初始化然后返回这个对象。否则,将传入的*mysql进行初始化。 如果是由mysql_init()分配生成的MYSQL对象,则当执行mysql_close()来关闭connection 的时候,会被释放。
void mysql_close(MYSQL *mysql) Description Closes a previously opened connection. mysql_close() also deallocates the connection handle pointed to by mysql if the handle was allocated automatically by mysql_init() or mysql_connect(). 关闭一个打开的连接。mysql_close()同时也释放mysql如果是由mysql_init() 或 mysql_connect()自动分配的。 个人翻译,非官方版本,仅仅参考。
进行连接。mysql_close()
关闭连接,并同时释放对象。所以说它对应于上面两个步骤。
------
不准确
MYSQL * STDCALL mysql_init(MYSQL *mysql);
这个函数通过你的传参来决定是自动申请空间还是用户自己提供
我现在看到2种初始化的例子
MYSQL mysql;
mysql_init(&mysql);和
MYSQL *mysql;
mysql=mysql_init(NULL);
mysql_real_connect().
进行连接。 mysql_close()
关闭连接,并同时释放对象。所以说它对应于上面两个步骤。
----
根据是否malloc空间,MYSQL结构有个成员标示是否释放
my_bool free_me; /* If free in mysql_close */
这样还有个疑问,如果mysql_real_connect失败或query失败是否要mysql_close()?
看有些书上这些情况没有mysql_close()
关闭一个打开的连接。mysql_close()同时也释放mysql如果是由mysql_init() 或 mysql_connect()自动分配的。 个人翻译,非官方版本,仅仅参考。