示例
#include <stdio.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <stdlib.h> #include <mysql/mysql.h> int main(int argc, char *argv[]) { MYSQL *psql = NULL; char sql_buff[1024] = {0}; //初始化 psql = mysql_init(NULL); if (NULL == psql){ printf("mysql_init error\n"); return -1; } //连接数据库 if (NULL == mysql_real_connect(psql, "127.0.0.1", "root", "111", NULL, 0, NULL, 0)){ printf("mysql_real_connect error\n"); return -1; } //选择数据库 if (0 != mysql_select_db(psql, "stu")){ printf("mysql_select_db error\n"); return -1; } //插入语句 memset(sql_buff, 0x00, 1024); sprintf(sql_buff, "%s", "insert into stu values(null, 'wangwu', now());"); if (mysql_query(psql, sql_buff) != 0){ printf("mysql_query error\n"); return -1; } //执行语句 memset(sql_buff, 0x00, 1024); sprintf(sql_buff, "%s", "select * from stu;"); if (mysql_query(psql, sql_buff) != 0){ printf("mysql_query error\n"); return -1; } //将执行结果存储 MYSQL_RES *sql_res; sql_res = mysql_store_result(psql); if (NULL == sql_res){ printf("mysql_store_result error\n"); return -1; } //根据存储结果获取条数 int row_num = mysql_num_rows(sql_res); if (row_num <= 0){ printf("mysql_num_rows error\n"); return -1; } //根据存储结果获取列数 int col_num = mysql_num_fields(sql_res); if (col_num <= 0){ printf("mysql_num_fields error\n"); return -1; } MYSQL_ROW row; int i = 0; while ((row = mysql_fetch_row(sql_res)) != NULL){ for (i = 0;i < col_num;i++){ printf("%s\t", row[i]); } printf("\n"); } mysql_free_result(sql_res); mysql_close(psql); return 0; }
mysql_init()
调用该函数初始化数据库句柄。
mysql_real_connect()
调用该函数连接数据库,传入参数有数据库句柄,主机地址,数据库用户名,数据库密码,数据库名称,数据库端口号,使用的套接字路径名;注意端口号默认 0 的情况下为 3306 端口
mysql_select_db()
调用该函数选择连接的数据库,也可以通过上一部
操作直接指定连接的数据库名称。
mysql_query()
调用该函数执行数据库语句。
mysql_store_result()
调用该函数将查询结果进行存储。
mysql_num_rows()
调用该函数获取查询结果条数。
mysql_num_fields()
调用该函数获取查询结果的每条列数。
mysql_fetch_row()
调用该循环取出每一条数据,每一条数据的结果以字符串数组方式平面存储,根据列数就可以将每一列数据取出。
mysql_free_result()
调用该函数将存储的结果进行释放(不释放的话会造成内存溢出)。
mysql_close()
调用该函数关闭数据库。