安装
sudo apt-get install mysql-server //单独装了mysql以后已经可以使用了,但还不能用c连接,编译的时候会提示找不到mysql.h,还要安装libmysqlclient-dev apt-get install libmysqlclient-dev
准备:
初始化库函数,初始化mysql
char* server_groups[]={"embedded","server","this_program_server",(char*)NULL}; MYSQL *pmysql=new MYSQL; if(mysql_library_init(0,NULL,server_groups)){//初始化MYSQL数据库 printf("无法chushihuahanshu库/n"); delete pmysql; pmysql=NULL; } mysql_init(pmysql);//初始化MYSQL标识符,用于连接 if(!mysql_real_connect(pmysql,"localhost","root","bingxueshen","test1",0,NULL,0)){ fprintf(stderr,"无法连接到数据库,错误原因是:%s/n",mysql_error(pmysql)); delete pmysql; pmysql=NULL; }
mysql_library_init():设置mysql数据库类型
mysql_init():初始化mysql资源
mysql_real_connect() :传入数据库名、账号密码等信息
执行sql语句,返回0表示成功
mysql_quary():执行参数中字符串SQL语句,以 为结束标志
mysql_real_quary():功能同上,参数多了一个语句长度,以语句长度为结束标志,防止查询语句中有二进制数据0
获取结果
MYSQL_RES *res; MYSQL_ROW row; res=mysql_store_result(&mysql);//返回查询的全部结果集 while(row=mysql_fetch_row(res)){//mysql_fetch_row取结果集的下一行 for(t=0;t<mysql_num_fields(res);t++){//结果集的列的数量 printf("%s/t",row[t]); } printf("/n"); } mysql_free_result(res);//操作完毕,查询结果集
mysql_store_result():获取查询结果,存放于MYSQL_RES类型中
mysql_fetch_row():一行一行地获取结果,直到读取完所有查询结果。每次返回一个MYSQL_ROW类型(其实就是一个字符串数组)
mysql_num_fields():返回查询结果包含的列数
mysql_free_result():清空结果集,使变量能继续存储以后的结果
关闭函数库与连接
mysql_close(&mysql);//关闭数据库连接 mysql_library_end();//关闭MySQL库