centos7上测试libmysqlclient包使用
/// 测试代码
/**
* hello_mysql.c
*/
#include <mysql/mysql.h>
#include <mysql/errmsg.h>
#include <stdio.h>
#include <errno.h>
int main()
{
/// mysql init
MYSQL *ms = mysql_init(NULL); /// 初始化mysql对象,并返回MYSQL对象 使用mysql_close关闭
if(NULL == ms){
perror("mysql_init error");
goto END;
}
/// connect mysql server
/// 192.168.110.133 为 host
/// test 为user
/// password 为该user的密码
/// mysql为安装的mysql数据库的初始数据库名
ms = mysql_real_connect(ms, "192.168.110.133", "test", "password", "mysql", 3306, NULL, 0);
if(NULL == ms){
perror("mysql_real_connect error");
goto END;
}
/// query mysql
if(0 != mysql_query(ms, "select Host, User, password_last_changed from user")){
perror("mysql_query");
goto END;
}
/// use query result
/**
* MYSQL_RES *mysql_use_result(MYSQL*);
* 使用mysql_fetch_row()调用
* 不会将服务端中的结果存储到本地,与mysql_store_result相比速度更快,内存使用更少
*/
MYSQL_RES *res = NULL;
if(NULL == (res = mysql_use_result(ms))){
perror("mysql_use_result error");
goto END;
}
/// read or fetch row
/**
* MYSQL_ROW mysql_fetch_row(MYSQL_RES*);
* 如何没有更多行时,返回NULL
*/
MYSQL_ROW row;
while(NULL != (row = mysql_fetch_row(res))){
printf("%s %s %s\n", row[0], row[1], row[2]);
}
if(NULL != res){
mysql_free_result(res);
}
END:
mysql_close(ms);
return 0;
}
#编译
gcc hello_mysql.c -L/usr/lib64/mysql -lmysqlclient -o hello_mysql
#执行
./hello_mysql
参考博客:
https://blog.csdn.net/locahuang/article/details/115203071