Linux C Mysql Options
来源:互联网 发布:如何用win10引导ubuntu 编辑:程序博客网 时间:2024/04/19 07:18
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
static char* server_groups[]={"embedded","server","this_program_server",(char*)NULL};
int MysqlOpt(char *database,char* username ,char* password,char* address,char* sqlstr)
{
MYSQL mysql;
mysql_library_init(0,NULL,server_groups);//初始化MYSQL数据库
mysql_init(&mysql);//初始化MYSQL标识符,用于连接
if(!mysql_real_connect(&mysql,"localhost","root","root","db_record",0,NULL,0))
{
fprintf(stderr,"无法连接到数据库,错误原因是:%s/n",mysql_error(&mysql));
return -1;
}
mysql_query(&mysql,sqlstr);
mysql_close(&mysql);//关闭数据库连接
mysql_library_end();//关闭MySQL库
return EXIT_SUCCESS;
}
int MysqlQueryFile(char *database,char* username ,char* password,char* address,char* sqlstr,FILE *fp)
{
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
int t,r;
mysql_library_init(0,NULL,server_groups);//初始化MYSQL数据库
mysql_init(&mysql);//初始化MYSQL标识符,用于连接
if(!mysql_real_connect(&mysql,"localhost","root","root","db_record",0,NULL,0))
{
fprintf(stderr,"无法连接到数据库,错误原因是:%s/n",mysql_error(&mysql));
return -1;
}
t=mysql_real_query(&mysql,sqlstr,(unsigned int)strlen(sqlstr));
if(t){
printf("查询数据库失败%s/n",mysql_error(&mysql));
mysql_close(&mysql);//关闭数据库连接
mysql_library_end();//关闭MySQL库
return -1;
}
else {
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]);
fwrite(row[t], sizeof(char), sizeof(row[t])-1, fp);
}
//printf("/n");
fwrite("\n", sizeof(char), 1, fp);
}
}
mysql_free_result(res);//操作完毕,查询结果集
mysql_close(&mysql);//关闭数据库连接
mysql_library_end();//关闭MySQL库
return EXIT_SUCCESS;
}
const char * MysqlQueryString(char *database,char* username ,char* password,char* address,char* sqlstr)
{
static char result[2048]="null";
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
int t,r;
mysql_library_init(0,NULL,server_groups);//初始化MYSQL数据库
mysql_init(&mysql);//初始化MYSQL标识符,用于连接
if(!mysql_real_connect(&mysql,"localhost","root","root","db_record",0,NULL,0))
{
fprintf(stderr,"无法连接到数据库,错误原因是:%s/n",mysql_error(&mysql));
return result;
}
t=mysql_real_query(&mysql,sqlstr,(unsigned int)strlen(sqlstr));
if(t){
printf("查询数据库失败%s/n",mysql_error(&mysql));
mysql_close(&mysql);//关闭数据库连接
mysql_library_end();//关闭MySQL库
return result;
}
else {
memset(result,0,sizeof(result));
res=mysql_store_result(&mysql);//返回查询的全部结果集
while(row=mysql_fetch_row(res)){//mysql_fetch_row取结果集的下一行
strcat(result,"#");
for(t=0;t<mysql_num_fields(res);t++){//结果集的列的数量
//printf("%s/t",row[t]);
strcat(result,row[t]);
strcat(result,"|");
}
//printf("/n");
}
}
mysql_free_result(res);//操作完毕,查询结果集
mysql_close(&mysql);//关闭数据库连接
mysql_library_end();//关闭MySQL库
return result;
}
int main(){
long ii = 10000000L;
clock_t start, finish;
double duration;
char resu[2048];
memset(resu, '\0', 128);
strcpy(resu, MysqlQueryString("db_record","root","root","localhost","select * from friends;"));
FILE *fp;
fp = fopen("test", "w");
MysqlQueryFile("db_record","root","root","localhost","select * from friends;",fp);
fclose(fp);
MysqlOpt("db_record","root","root","localhost","create table test1(name varchar(20), age varchar(10));;");
printf( "Time to do %ld empty loops is ", ii );
start = clock();
MysqlOpt("db_record","root","root","localhost","insert into test1(name , age )values('aa','bbb');");
printf("%s\n",resu);
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", duration );
return 1;
}
========================================
gcc -g -o MysqlOption MysqlOption.c -I/usr/include/mysql -L/usr/lib -lmysqlclient -lpthread -lm -lrt -ldl
=======================================
pfkj@pfkj-desktop:~/wls/jianggq$ cat main.c
#include <stdio.h>
#include <string.h>
#include <dlfcn.h>
#include <sqlite3.h>
int main()
{
char sql[128];
FILE *fd;
char resu[2048];
int (*sqlopt)(char *database,char* username ,char* password,char* address,char* sqlstr);
int (*sqlsingle)(char *database,char* username ,char* password,char* address,char* sqlstr);
const char * (*sqlquery)(char *database,char* username ,char* password,char* address,char* sqlstr,FILE *fp);
void *handle;
handle=dlopen("./libMysqlOption.so",RTLD_LAZY);//open lib file
sqlopt=dlsym(handle,"MysqlOpt");//call dlsym function
sqlquery=dlsym(handle,"MysqlQueryFile");//call dlsym function
sqlsingle=dlsym(handle,"MysqlQueryString");//call dlsym function
memset(sql, 0, 128);
strcpy(sql, "create table tbtest2( data varchar(20))");
sqlopt("db_record","root","root","localhost",sql);
strcpy(sql, "insert into tbtest2(data) values(\"hello\")");
sqlopt("db_record","root","root","localhost",sql);
fd = fopen("test", "w");
fwrite("Result: \n", sizeof(char), 10, fd);
memset(sql, '\0', 128);
strcpy(sql, "select * from tbtest2");
sqlquery("db_record","root","root","localhost",sql,fd);
memset(resu, '\0', 128);
strcpy(resu, sqlsingle("db_record","root","root","localhost",sql));
printf("%s",resu);
strcpy(sql, "update tbtest2 set data='updaterow' where rowid=1");
sqlopt("db_record","root","root","localhost",sql);
fclose(fd);
dlclose(handle);
return 0;
}
- Linux C Mysql Options
- Linux C Sqllite DataBase Options
- MySQL Scaling Options
- MySQL Source-Configuration Options
- MySQL Source-Configuration Options
- Options Controlling C Dialect
- options controlling C dialect
- linux pppd options手册
- gcc 笔记 C Dialect Options
- linux C mysql 编程
- linux c mysql例子
- linux mysql c 编程
- linux mysql c
- linux c mysql 开发
- Linux C访问MySQL
- linux c mysql demo
- C mySQL编程 linux
- linux c 访问mysql
- 切割子视图越界的部分【将越界部分设置为不可见从而达到效果】
- 上传图片时预览效果
- 根据字符串长度计算像素大小
- 第九周项目3(4)
- 跑马灯
- Linux C Mysql Options
- navigationBar图片过大
- 根据手势拿到superview
- 命令行下安装sybase
- 让Button旋转:
- 1408: 种植树苗
- 图片旋转 和上下一页的js代码 有错误
- cell设置没有选中效果,tableVIew设置没有分割线
- JFreeChart 使用一 饼图之简单实例