MYSQL 和C

    技术2022-05-20  37

         

          最近做的一个项目要用到历史数据库,由于费用紧张就下了一个MYSQL.MYSQL是一种小型关系型数据库管理系统,其体积小、速度快、总体拥有成本低。开始安装的时候选的是CUSTTOM,安装完在VS里添加包含文件和库文件的时候,发现MYSQL文件夹下没有这两个文件夹。重新安装MYSQL,选complete安装完后,这时在MYSQL文件下就有了include 和lib这两个文件夹。把这两文件夹添加到工程。编译通过,运行的时候出出现“没有找到libmysql.dll”错误。把mysql/ bin下的libmysql.dll复制到C:/WINDOWS/system,就OK了。记得在头文件里要包含mysql.h和libmysql.lib。

         

          用C语言操作MYSQL数据库,主要用到的API函数如下例子:

    -------------------------------------------------------------------------------------------------------------------------------------------

      MYSQL mysql,*sock; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数

      mysql_init(&mysql);  //初始化MySQL服务器 //获得连接    if (!(sock = mysql_real_connect(&mysql,"localhost","root","","avc2",0,NULL,0))) {        fprintf(stderr,"Couldn't connect to engine!/n%s/n/n",mysql_error(&mysql));        perror("");        exit(1);    }

        

     -------------------------------------------------------------------------------------------------------------------------------------------

    char sql_command[1000];

     

    //创建表

     sprintf(sql_command,"create table %s(id INT(10),sd INT(10),stn_descr VARCHAR(45), sbus_descr VARCHAR(45),kv     FLOAT,isbus INT(10))",tabname_daily_kv); if(mysql_query(sock,sql_command)) {  printf("Couldn't get result from %s/n", mysql_error(sock));  printf("/n Warning---%ld",__LINE__); }

     

     -------------------------------------------------------------------------------------------------------------------------------------------

     

    //插入内容sprintf(sql_command,"insert into %s(id,sd,stn_descr,sbus_descr,kv,isbus)values(%d,%d,'%s','%s',%f,%d)",tabname_daily_kv,j,k,stn_descr,sbus_descr,vp->vday288[k],m);   if(mysql_query(sock,sql_command))

     {    printf("Couldn't get result from %s/n", mysql_error(sock));    printf("/n Warning ---%ld",__LINE__);   }

     

     

     -------------------------------------------------------------------------------------------------------------------------------------------

     

    //更新表

    sprintf(sql_command,"update %s set kv=%lf where sd=%ld and stn_descr='%s' and sbus_descr='%s'",tabname_daily_kv,vp->vday288[vp->sd],vp->sd,stn_descr,sbus_descr);  if(mysql_query(sock,sql_command))  {   printf("Couldn't get result from %s/n", mysql_error(sock));   printf("/n Warning --%ld",__LINE__);  }

    -------------------------------------------------------------------------------------------------------------------------------------------

     

     用C语言操作MYSQL,主要用到的API函数是 mysql_query(a,b). a参数是连接数据库返回的数据库连接句柄,b参数是mysql的操作语句,也就是在commond输入的语句,比如select, update,insert等。


    最新回复(0)