【Linux】MySQL C语言操作

C语言访问MySQL


头文件

#include <mysql.h>

API

//通常传递NULL,返回一个指向连接句柄的指针;如果传进去一个已有的结构,它将被重新初始化
MYSQL mysql_init(MYSQL );

//连接数据库
MYSQL *mysql_real_connect(MYSQL *connection,//由mysql_init初始化的指针
const char *server_host,//主机名或者IP地址
const char *sql_user_name,
const char *sql_passwd,
const char *db_name,
unsigned int port_number,//mySQL默认为0
const char *unix_socket_name,//mySQL默认为NULL
unsigned int flags);

//断开连接
void mysql_close(MYSQL *connection);

//设置选项(在mysql_init()与mysql_real_connect()之间调用)
int mysql_options(MYSQL *connection, enum option_to_set, const char *argument);

//错误处理
unsigned int mysql_errno(MYSQL *connection);

char *mysql_error(MYSQL *connection);

//执行SQL语句
int mysql_query(MYSQL *connection,const char *query);

//返回受影响的行数
my_ulonglong mysql_affected_rows(MYSQL *connection);

有返回结果的处理
//一次提取所有数据,返回一个指向结果集的指针
MYSQL_RES *mysql_store_result(MYSQL *connection);

my_unlonglong mysql_num_rows(MYSQL_RES *result);//返回结果集中的行数

//从得到的结果集中获取一行
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

//在结果集中跳转到第offset+1行(下次mysql_fetch_row调用时获取当前设置行)
void mysql_data_seek(MYSQL_RES *result,my_ulonglong offset);

//返回一个偏移量,标示当前结果集中的位置(并非当前行号,不能用于mysql_data_seek)
MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);

//上述返回值可用于此函数
MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW offset);

//释放结果集
void mysql_free_result(MYSQL_RES *result);

//返回结果集中字段(列)的数目
unsigned int mysql_field_count(MYSQL *connection);


读取数据例子

//获取句柄
MYSQL my_connection;
mysql_init(&my_connection);

//真正连接数据库
mysql_real_connect(&my_connection,”localhost”,”用户名”,”密码”,”数据库名”,0,NULL,0);

//执行查找语句
mysql_query(&my_connection,”SELECT * FROM children”);

//获取所有返回结果
MYSQL_RES *res_prt;
res_ptr=mysql_store_result(&my_connection);

//逐行打印结果
MYSQL_ROW sqlRow;
unsigned int cols=mysql_field_count(&my_connection);
while((sqlRow=mysql_fetch_row(res_ptr))){
unsigned int i=0;
for(i=0;i<cols;++i)
printf(“%s “,sqlRow[i]);
printf(“\n”);
}

//释放结果集,断开连接
mysql_free_result(res_ptr);
mysql_close(&my_connection);

编译时命令

gcc -o outputFileName inputSource.c -I /usr/include/mysql/ -lmysqlclient

记得下载mysql开发者文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值