mysql c库 示例_c语言查询mysql示例

1.安装mysql-server,在Ubuntu 10.04下安装mysql-server-5.1,会自动安装mysql-client_5.1sudo apt-get install mysql-server-5.1

2.C APIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

假定已安装成功,相关文件如下:

头文件在/usr/include/mysql目录下;

库文件在/usr/lib/mysql和/usr/lib目录下

3. 编译:

gcc testdb.c -o test -I /usr/include/mysql -L /usr/lib -lmysqlclient

MYSQL *mysql_init(MYSQL *);

//这里称之为载入函数吧,返回的MYSQL指针要用到后续的函数中

int mysql_options(MYSQL *connection, enum option_to_set,const char *argument);

//设置MYSQL*的一些属性,比如超时时间等

MYSQL *mysql_real_connect(MYSQL *connection,

const char *server_host,

const char *sql_user_name,

const char *sql_password,

const char *db_name,

unsigned int port_number,//置0连接默认端口,一般为3306

const char *unix_socket_name,//NULL

unsigned int flags);//无另外属性时置0

//连接函数

void mysql_close(MYSQL *connection);

//关闭连接

unsigned int mysql_errno(MYSQL *connection);

//返回错误代码

char *mysql_error(MYSQL *connection);

//返回错误信息

int mysql_query(MYSQL *connection, const char *query);

//执行sql语句

my_ulonglong mysql_affected_rows(MYSQL *connection);

//返回执行语句过后受影响的行数,针对insert,update,delete

MYSQL_RES *mysql_store_result(MYSQL *connection);

//返回执行结果,适用于数据量较小时,会返回到客户端保存

my_ulonglong mysql_num_rows(MYSQL_RES *result);

//返回上面函数返回结果的行数

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);

//抽取一条记录,返回NULL时表示抽取完记录或者错误

void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);

//调整数据位置,offset为0时,下次调用mysql_fetch_row将返回result第一条记录

MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result);

//返回当前的位置

MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset);

//移动数据位置,并返回先前的位置,可以和上一个函数结合使用

void mysql_free_result(MYSQL_RES *result);

//释放result空间

MYSQL_RES *mysql_use_result(MYSQL *connection);

//返回执行结果,适用于数据量较大时,不返回到客户端保存

unsigned int mysql_field_count(MYSQL *connection);

//返回查询结果中的列数(column数)

MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result);

//获得查询结果中的列名等信息(表头信息)

#include

#include

#include

#include

int main(void) {

// mysql操作符

MYSQL *mysql;

// mysql结果集

MYSQL_RES *mysql_res;

// mysql行操作符

MYSQL_ROW mysql_row;

char sqlcmd[200];

int r, t;

// 初始化

mysql = mysql_init(NULL);

if (!mysql) {

return EXIT_FAILURE;

}

printf("%s\n", "init");

// 链接

mysql = mysql_real_connect(mysql, "127.0.0.1", "root", "root", "test", 0, NULL, 0);

if (!mysql) {

return EXIT_FAILURE;

}

printf("%s\n", "connect");

mysql_set_character_set(mysql, "utf8");

// 执行查询

sprintf(sqlcmd, "%s", "select id,name from user");

r = mysql_real_query(mysql, sqlcmd, strlen(sqlcmd));

if (r) {

// 结束

mysql_close(mysql);

return EXIT_FAILURE;

}

printf("%s\n", "begin to query");

mysql_res = mysql_store_result(mysql);

if (!mysql_res) {

// 结束

mysql_close(mysql);

return EXIT_FAILURE;

}

while((mysql_row = mysql_fetch_row(mysql_res))) {

for (t = 0; t < mysql_num_fields(mysql_res); t++) {

printf("%s,", mysql_row[t]);

}

printf("\n");

}

// 释放

mysql_free_result(mysql_res);

printf("%s\n", "query finish");

// 结束

mysql_close(mysql);

return EXIT_SUCCESS;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值