mysql C API的使用
《MySQL++简介》介绍了如何使用C++来访问mysql,本文记录下使用C API访问mysql,mysql++就是对本文介绍的C-API的封装。
常用函数(名字就能告诉我们用法):
MYSQL * mysql_init(MYSQL *mysql) int mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)//设置一些如编码等属性 MYSQL * mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag) //建立连接 int mysql_query(MYSQL *mysql, const char *q) //执行sql语句,Zero for success. Nonzero if an error occurred. my_ulonglong mysql_affected_rows(MYSQL *mysql) //更新语句影响的行数 MYSQL_RES * mysql_store_result(MYSQL *mysql) //与mysql_use_result效果等同,获取sql执行结果 MYSQL_RES * mysql_use_result(MYSQL *mysql) my_ulonglong mysql_num_rows(MYSQL_RES *res) //获取行数 MYSQL_ROW mysql_fetch_row(MYSQL_RES *result) //逐一取行 void mysql_free_result(MYSQL_RES *result) void mysql_close(MYSQL *sock)
使用实例:
#include <mysql.h> int main() { MYSQL* mysql = mysql_init(NULL); mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk"); mysql_real_connect(mysql, "10.38.72.33", "test_user", "test_pwd", "test_db", 3306, NULL, 0); string sql("select name, age from student"); mysql_query(mysql, sql.c_str()); MYSQL_RES* res = mysql_store_result(mysql); MYSQL_ROW row; if (res == NULL) { cout << "query failed" << endl; return -1; } while ((row = mysql_fetch_row(res)) != NULL) { cout << "name:" << row[0] << ",age:" << row[1] << endl; } mysql_free_result(res); mysql_close(mysql); return 0; }