看了网上好多的文章,没有一篇是完全合适我使用的,但也不是说他们的作用一点也不合适我,我是综合运用了他们的方法,现在总结了一下到底应该怎样编译这.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头文件所在的路径和网上查找到的不一样,因为一直按照网上的尝试,让我郁闷了好久,现在终于成功了,不断学习~
分享到:
相关推荐
在Ubuntu系统中编译Android操作系统是一项复杂而重要的任务,尤其对于开发者来说,了解这一过程能够帮助他们更好地理解和定制Android系统。以下是在Ubuntu 7.10(Gutsy Gibbon)上编译Android的主要步骤和注意事项:...
此方法适用于那些希望在没有光驱或者USB驱动器的情况下安装Ubuntu的用户。硬盘安装不仅能够节省资源,还能在一定程度上提高安装速度。 #### 二、下载必要的安装文件 ##### 1. 下载光盘映像文件 - 首先,您需要下载...
- **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日发布 - ...
- **Live CD**:用户可以在不安装系统的情况下通过Live CD体验Ubuntu的功能。 - **GUI安装程序**:提供了一个图形化的安装过程,类似于Windows的安装方式,降低了学习曲线。 - **软件中心**:一个集中的平台,用于...
Ubuntu Linux 软件源是 Ubuntu 操作系统中用于安装和管理软件的核心组件。它相当于软件库,用户可以从中安装所需的软件。软件源是一个包含了大量软件的仓库,用户可以通过命令或图形界面来安装和删除软件。 什么是 ...
随着技术的发展和个人需求的多样化,越来越多的用户需要在Linux环境下使用Windows应用程序或者进行软件测试等操作。虚拟化技术应运而生,成为了解决这类问题的有效手段之一。VirtualBox作为一款优秀的虚拟机软件,...
Ubuntu 7.10,代号为"Gutsy Gibbon",发布于2007年,包含了当时最新的技术和安全更新。尽管该版本已经过时,但理解它的历史背景有助于我们了解Ubuntu的发展历程以及它在技术上的演变。 描述中的“针对虚拟机进行...
在Ubuntu下,可以通过使用apt-get命令来安装Java 6的JRE(Java运行时环境)和SDK(软件开发工具包)。在终端中输入以下命令: ```bash $sudo apt-get install sun-java6-jre sun-java6-sdk ``` 这将自动下载并安装...
在虚拟机环境中,为了提升Ubuntu 7.10(代号Gutsy Gibbon)的性能、稳定性和用户体验,安装VMware-Tools是一项至关重要的步骤。以下是对标题、描述及部分给定内容中所涉及的知识点的详细阐述: ### 虚拟机中为...
标题“Ubuntu 7.10 安装 VMware Tools”涉及的是在Ubuntu 7.10(Gutsy Gibbon)操作系统上安装VMware Tools的过程。VMware Tools是VMware为虚拟机提供的一套优化工具,它能提升虚拟机的性能,并提供更好的硬件兼容性...
虚拟机中安装Ubuntu是IT专业人员和爱好者常见的实践,它允许用户在隔离的环境中尝试操作系统而不会影响主机系统。本知识点将详细介绍在虚拟机中安装Ubuntu的整个过程,以及相关的技术和概念。 ### 虚拟机软件 首先...
- **当前版本**: 本文档未明确给出具体的版本号,但根据文档的编写时间(2007年),可以推测当时最新的稳定版本可能是 Ubuntu 7.10(Gutsy Gibbon)。 - **特点**: - 免费且开源:基于GNU/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》中文版第七期的内容主要聚焦于Ubuntu操作系统及其相关的应用程序和技术细节。以下是对该期刊涉及的关键知识点的详细解读。 ### 关键知识点一:Ubuntu 7.10(代号“Gutsy Gibbon”)...