vlambda博客
学习文章列表

C++如何调用数据库(一)

最近遇到一个在地名数据中查询地名的问题,不太了解,只知道和数据库相关,数据库也不太明白,借此机会学习一下。

示例代码:test.cpp

int mysql_library_init(int argc, char **argv, char **groups)

在调用任何其他MySQL函数之前,调用此函数初始化MySQL客户端库。

C++如何调用数据库(一)


MYSQL *mysql_init(MYSQL *mysql)

C++如何调用数据库(一)


int mysql_options(MYSQL *mysql, enum mysql_option option, const void *arg)

可用于设置额外的连接选项并影响连接的行为。可以多次调用此函数以设置多个选项。要检索选项值,可使用mysql_get_option()。


C++如何调用数据库(一)

C++如何调用数据库(一)

尝试连接正在运行的mysql的host, mysql_real_connect()必须先成功完成,然后才能执行需要有效MYSQL连接的任何其他API函数。

C++如何调用数据库(一)

注意每个表头的名称,这么写是有含义的。

C++如何调用数据库(一)

int mysql_query(MYSQL *mysql, const char *stmt_str)

执行sql语句,第二个参数是包含sql语句的字符串数组或字符指针

C++如何调用数据库(一)

C++如何调用数据库(一)


 MYSQL_RES *mysql_store_result(MYSQL *mysql)

任何有结果集的mysql_query()调用之后需要再调用mysql_store_result()来获得结果

C++如何调用数据库(一)

unsigned int mysql_num_fields(MYSQL_RES *result)

返回结果集中的列数

C++如何调用数据库(一)

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

检索任意行的结果

void mysql_library_end(void)

完成使用库后调用它(例如,在断开与服务器的连接后

void mysql_close(MYSQL *mysql)

关闭先前打开的连接

void mysql_free_result(MYSQL_RES *result)

完成结果集后,必须通过调用释放它使用的内存,释放后不要尝试访问结果集

 注:使用完数据库之后一定不要忘记释放内存和断开连接,关闭数据库!(mysql_free_result()、mysql_close()、mysql_library_end())

最后在主流程中调用

int main()

{

Mysqltest();

return 0;

}

编译:



PS:

bool mysql_change_user(MYSQL *mysql, const char *user, const char *password, const char *db)

更改用户并使指定的数据库 db成为指定连接