`
pipal
  • 浏览: 165893 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Ubuntu gutsy下c语言操作mysql数据库的编译方法

阅读更多
看了网上好多的文章,没有一篇是完全合适我使用的,但也不是说他们的作用一点也不合适我,我是综合运用了他们的方法,现在总结了一下到底应该怎样编译这.c文件,以下用select1.c为例,该例子来自falcon的文章:
/*  select1.c */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "/usr/include/mysql/mysql.h"

int main(int argc, char *argv[])
{
MYSQL my_connection;
MYSQL_RES *res_ptr;   /*指向检索的结果存放地址的指针*/
MYSQL_ROW sqlrow;     /*返回的记录信息*/
MYSQL_FIELD *fd;      /*字段结构指针*/
char aszflds[25][25]; /*用来存放各字段名*/
int res;             /*执行查询操作后的返回标志*/
int i,j,k;

mysql_init(&my_connection);

/*mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)*/
if (mysql_real_connect(&my_connection, "localhost", "root", "yourpasswd","cusemysql",0,NULL,CLIENT_FOUND_ROWS))
{
    printf("Connection success\n");
    res = mysql_query(&my_connection, "select childno,fname,age from children where age<30");

    if (res)
    {
        printf("SELECT error:%s\n",mysql_error(&my_connection));
    }
    else
    {
       res_ptr=mysql_store_result(&my_connection);
       if(res_ptr)
       {
              printf("Retrieved %lu Rows\n",(unsigned long)mysql_num_rows(res_ptr));
              /*取得各字段名*/
              for(i=0;fd=mysql_fetch_field(res_ptr);i++)
                     strcpy(aszflds[i],fd->name);
              /*输出各条记录*/
              printf("下面是检索出的各条记录信息:\n");
              j=mysql_num_fields(res_ptr);
              for(i=0;i<j;i++)
              printf("%s\t",aszflds[i]);
              printf("\n");
              while((sqlrow=mysql_fetch_row(res_ptr)))
              {
                     for(i=0;i<j;i++)
                     printf("%s\t",sqlrow[i]);
                     printf("\n");
              }
              if (mysql_errno(&my_connection))
              {
                     fprintf(stderr,"Retrive error:s\n",mysql_error(&my_connection));
              }
       }
       mysql_free_result(res_ptr);
       }
    mysql_close(&my_connection);
}

else
{
    fprintf(stderr, "Connection failed\n");

    if (mysql_errno(&my_connection))
    {
        fprintf(stderr, "Connection error %d: %s\n",
        mysql_errno(&my_connection),
        mysql_error(&my_connection));
        }
}
    return EXIT_SUCCESS;
} 


编译方法之一:gcc select1.c -o select1 `mysql_config --cflags --libs`
下面是我机子上的演示:
root@pipal-desktop:/home/pipal/mysql# gcc select1.c -o select1 `mysql_config --cflags --libs`
root@pipal-desktop:/home/pipal/mysql# ./select1
Connection success
Retrieved 3 Rows
下面是检索出的各条记录信息:
childno fname   age
5       flower  10
10      Ann     5
20      花儿    22
其实还有一种编译方法:gcc $(mysql_config --cflags) select1.c -o select $(mysql_config --libs)
这两种方法都是可以的。
还要说两句,在包含头文件的时候有两种包含方式:
标准路径:#include <mysql.h>
绝对路径:#include "/usr/include/mysql/mysql.h"
在此,我要的指出的是,我的mysql.h头文件所在的路径和网上查找到的不一样,因为一直按照网上的尝试,让我郁闷了好久,现在终于成功了,不断学习~
1
0
分享到:
评论

相关推荐

    ubuntu下编译

    在Ubuntu系统中编译Android操作系统是一项复杂而重要的任务,尤其对于开发者来说,了解这一过程能够帮助他们更好地理解和定制Android系统。以下是在Ubuntu 7.10(Gutsy Gibbon)上编译Android的主要步骤和注意事项:...

    硬盘安装Ubuntu 7.10

    此方法适用于那些希望在没有光驱或者USB驱动器的情况下安装Ubuntu的用户。硬盘安装不仅能够节省资源,还能在一定程度上提高安装速度。 #### 二、下载必要的安装文件 ##### 1. 下载光盘映像文件 - 首先,您需要下载...

    ubuntu常见问题及解决

    - **Ubuntu 7.10 Gutsy Gibbon** - 2007年10月发布 - **Ubuntu 8.04 Hardy Heron** - 2008年4月发布 - **Ubuntu 8.10 Intrepid Ibex** - 2008年10月发布 - **Ubuntu 9.04 Jaunty Jackalope** - 2009年4月23日发布 - ...

    Ubuntu linux 基础.pdf

    - **Live CD**:用户可以在不安装系统的情况下通过Live CD体验Ubuntu的功能。 - **GUI安装程序**:提供了一个图形化的安装过程,类似于Windows的安装方式,降低了学习曲线。 - **软件中心**:一个集中的平台,用于...

    UbuntuLinux软件源详解.pdf

    Ubuntu Linux 软件源是 Ubuntu 操作系统中用于安装和管理软件的核心组件。它相当于软件库,用户可以从中安装所需的软件。软件源是一个包含了大量软件的仓库,用户可以通过命令或图形界面来安装和删除软件。 什么是 ...

    virtualbox安装

    随着技术的发展和个人需求的多样化,越来越多的用户需要在Linux环境下使用Windows应用程序或者进行软件测试等操作。虚拟化技术应运而生,成为了解决这类问题的有效手段之一。VirtualBox作为一款优秀的虚拟机软件,...

    ubuntu-7.10-jeos-i386最小的精简版系统,针对虚拟机进行优化(155M).zip

    Ubuntu 7.10,代号为"Gutsy Gibbon",发布于2007年,包含了当时最新的技术和安全更新。尽管该版本已经过时,但理解它的历史背景有助于我们了解Ubuntu的发展历程以及它在技术上的演变。 描述中的“针对虚拟机进行...

    Ubuntu配置Java+Eclipse+MyEclipse环境

    在Ubuntu下,可以通过使用apt-get命令来安装Java 6的JRE(Java运行时环境)和SDK(软件开发工具包)。在终端中输入以下命令: ```bash $sudo apt-get install sun-java6-jre sun-java6-sdk ``` 这将自动下载并安装...

    虚拟机中 为 ubuntu7.10 安装 VMware-Tools

    在虚拟机环境中,为了提升Ubuntu 7.10(代号Gutsy Gibbon)的性能、稳定性和用户体验,安装VMware-Tools是一项至关重要的步骤。以下是对标题、描述及部分给定内容中所涉及的知识点的详细阐述: ### 虚拟机中为...

    ubuntu7_10安装VMware Tools

    标题“Ubuntu 7.10 安装 VMware Tools”涉及的是在Ubuntu 7.10(Gutsy Gibbon)操作系统上安装VMware Tools的过程。VMware Tools是VMware为虚拟机提供的一套优化工具,它能提升虚拟机的性能,并提供更好的硬件兼容性...

    虚拟机中Ubuntu的安装.pdf

    虚拟机中安装Ubuntu是IT专业人员和爱好者常见的实践,它允许用户在隔离的环境中尝试操作系统而不会影响主机系统。本知识点将详细介绍在虚拟机中安装Ubuntu的整个过程,以及相关的技术和概念。 ### 虚拟机软件 首先...

    Ubuntu部落 基本教程

    - **当前版本**: 本文档未明确给出具体的版本号,但根据文档的编写时间(2007年),可以推测当时最新的稳定版本可能是 Ubuntu 7.10(Gutsy Gibbon)。 - **特点**: - 免费且开源:基于GNU/Linux操作系统。 - 用户...

    linux学习笔记-初学者必备

    1. **官方主仓库**:`deb http://ubuntu.cn99.com/ubuntu gutsy main restricted universe multiverse` 2. **安全更新仓库**:`deb http://ubuntu.cn99.com/ubuntu gutsy-security main restricted universe ...

    《Full Circle》中文版第七期

    根据提供的信息,《Full Circle》中文版第七期的内容主要聚焦于Ubuntu操作系统及其相关的应用程序和技术细节。以下是对该期刊涉及的关键知识点的详细解读。 ### 关键知识点一:Ubuntu 7.10(代号“Gutsy Gibbon”)...

Global site tag (gtag.js) - Google Analytics