Ubuntu下数据库编程

示例

#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()


调用该函数关闭数据库。

猜你喜欢

转载自blog.csdn.net/qq_33408113/article/details/80227733