ubuntu 下c && mysql
来源:互联网 发布:美国白人比例知乎 编辑:程序博客网 时间:2024/06/04 17:59
mysql 作为数据库,提供了c/c++,java,python,perl等的API。本文简单的介绍一下在c 程序中如何使用mysql。
一般步骤:
应用程序对数据库的操作一般步骤是:
1、建立连接
初始化连接句柄结构 实际创建连接
2、执行SQL操作语句
3、关闭连接
对应的实现过程:
调用mysql_library_init(),初始化MySQL 库
调用mysql_init()初始化连接处理程序,调用mysql_real_connect() 连接到服务器。
发出SQL语句并处理其结果
调用mysql_close(), 关闭与MySQL服务器的连接
通过调用mysql_library_end(), 结束MySQL库的使用。
常用结构:
MYSQL 结构代表一个数据库连接的句柄,包含关于服务器的连接状态的信息。
MYSQL_RES代表返回行的查询结果
MYSQL_ROW 表示一个行数据的类型安全
MYSQL_FIELD 包含字段信息
example:
#include <mysql/mysql.h>#include <stdio.h>#include <stdlib.h>int main(){MYSQL *mysql;MYSQL_RES *res;MYSQL_ROW row;const char *query = "select * from data_import";int t, r;//mysql = new MYSQL;mysql = (MYSQL*)malloc(sizeof(MYSQL));if (!mysql) {fprintf(stderr, "malloc failed\n");exit(EXIT_FAILURE);}//initmysql_init(mysql);if (!mysql_real_connect(mysql, "localhost", "root", "lijun", "emp",0, NULL, 0)) {printf("Error connecting to database: %s\n", mysql_error(mysql));} else {printf("Connected ...\n");}//SELECT * FROM USERNAMEt = mysql_query(mysql, query);if (t) {printf("Error making query: %s\n", mysql_error(mysql));} else {printf("Query made...\n");res = mysql_use_result(mysql);if (res) {for (r = 0; r < mysql_field_count(mysql); r++) {row = mysql_fetch_row(res);if (row < 0) {break;}for (t = 0; t < mysql_num_fields(res); t++) {printf("%s ", row[t]);}printf("\n");}}mysql_free_result(res);}mysql_close(mysql);//delete mysql;free(mysql);}
mysql_use_result() 用来对“按行“结果集进行初始化处理,该函数只可以初始化检索结果但无法获得任何实际行。
mysql_num_fields() 用来得到列数,获取行数的是mysql_num_rows() 这个函数。
编译该文件的时候需要注意链接到mysqlclient库:
gcc -lmysqlclient filename.c -o filename
如果报出链接错误,没有找到mysqlclient 库,检查一下是否安装了,没有的话可以:
sudo apt-get install libMySQLclient15-dev
这里,我有一点没弄明白,为什么不给MYSQL 动态分配内存空间,而直接调用mysql_init() 会报错?哪一位可以解释一
下。
- ubuntu 下c && mysql
- ubuntu下C++mysql编译环境设置
- Ubuntu 10.04 下 C 连接mysql数据库
- ubuntu下C操作Mysql数据库第一步
- ubuntu 下 用C语言连接mysql
- Ubuntu下C连接mysql数据库
- Ubuntu下安装MySQL获得 mysql.h 建立C接口
- Ubuntu下安装MySQL获得 mysql.h 建立C接口
- Ubuntu下用C语言访问MySQL数据库的方法
- Using Ubuntu系统下C开发 MySQL数据库应用
- Ubuntu下用C语言访问MySQL数据库(转载)
- ubuntu下c调用mysql的简单例子
- ubuntu下配置mysql并使用其c语言API
- Ubuntu下用C语言访问MySQL数据库
- Ubuntu下用C直接操作Mysql数据库的方法
- 【Linux】Ubuntu下C语言访问MySQL数据库入门
- Ubuntu下用C语言访问MySQL数据库
- linux ubuntu下C语言与数据库mysql连接
- hdu1242
- xen虚拟机的迁移实验
- vs2008中调用matlab,采用dll的形式
- iOS 组件使用
- 牛人学习记录
- ubuntu 下c && mysql
- MD5
- call transfer与call forward的比较(
- 摩尔定律之个人理解
- 同余定理
- 关于◎SuppressWarnings("unchecked")
- ZOJ 3582 Back to the Past 概率DP
- antlr-2.7.6.jar发生错误,删不掉解决办法
- 动态的,太炫了!Rotating Voronoi