MySQL C 语言应用程序接口开发教程(1)
来源:互联网 发布:sqlserver版本选择 编辑:程序博客网 时间:2024/06/06 02:07
http://blog.chinaunix.net/uid-23842323-id-2656574.html
关于教程
这是一篇 MySQL 数据库的 C 语言开发教程。它讲述了用 C 语言开发 MySQL 应用程序的基本过程。
关于 MySQL 数据库
MySQL 是一个重要的开放源代码的、多用户的、多线程的数据库管理系统。MySQL 在 Web 应用中很流行。它是非常流行的 LAMP(Linux, Apache, MySQL, PHP) 架构的一部分。MySQL 被瑞典一家名为 MySQL AB 并对开源事业有杰出贡献的公司所有。MySQL 数据库可以运行在很多的操作系统上,如 BSD, Unix, Linux Windows 和 Mac。维基百科和 Youtube 都在使用 MySQL。这些站点一天有数百万将的查询。MySQL 有两个版本,分别是 MySQL 服务器系统和 MySQL 嵌入式系统。
第一个实例
我们第一个实例将要测试调用一个 MySQL 函数。
#include #include int main(int argc, char * argv[]){printf("MySQL client version: %s\n", mysql_get_client_info());return 0;}
函数 mysql_get_client_info()返回 MySQL 客户端版本信息。
gcc version.c -o version `mysql_config --cflags --libs`./version
这是是如何编译和运行这个实例。
MySQL client version: 5.0.38
#include #include
我们包含两个需要的头文件: mysql.h MySQL 函数调用的最重要的头文件。my_global.h 包含了一些全局的声明和标准输入/输出头文件。
printf("MySQL client version: %s\n", mysql_get_client_info());
这行代码输入了 MySQL 客户端的版本信息。我们调用了 mysql_get_client_info()函数。
创建一个数据库
在第二个实例中创建一个数据库。
#include #include int main(int argc, char * argv[]){MYSQL * conn; conn = mysql_init(NULL); if (conn == NULL) {printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));exit(1);} if (mysql_real_connect(conn, "localhost", "username", "password", NULL, 0, NULL, 0) == NULL) {printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));exit(1);} if (mysql_query(conn, "CREATE DATABASE testdb")) {printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));exit(1);} mysql_close(conn); return 0;}
这段代码连接了 MySQL 数据库系统并创建了一个名为 testdb 的数据库。
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || testdb |+--------------------+3 rows in set (0.00 sec)
检验的确创建了一个新的库。
在这段实例中我们包含了错误检测,检查可能出现的错误是非常重要的。在数据库开发领域里,很多地方都可能出错。为了有清晰的代码之后的实例中将不包含错误检查,我们假设所有人清楚错误检测是开发人员的责任。
实例分为如下的部分:
- 初始化一个连接对象结构
- 创建一个连接
- 执行一个查询
- 关闭连接
MYSQL * conn;
我们声明一个 MYSQL 结构指针,这个结构是连接对象。
conn = mysql_init(NULL);
mysql_init() 函数返回一个连接对象。
if (conn == NULL) {printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));exit(1);}
我们检查返回值,如果 mysql_init() 调用失败打印错误消息并中止应用程序。
if (mysql_real_connect(conn, "localhost", "username", "password", NULL, 0, NULL, 0) == NULL) {printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));exit(1);}
mysql_real_connect() 函数建立了一个到数据库的连接。我们提供连接对象、主机名、用户名和密码参数。其它四个参数分别是数据库名、端口、Unix 套接字和客户端标记。
if (mysql_query(conn, "CREATE DATABASE testdb")) {printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));exit(1);}
mysql_query() 执行一个 SQL 语句。这里创建一个新的库。
mysql_close(conn);
最后,我们关闭数据库连接。
创建和操作表
第三个实例将要创建一个表并插入一些数据。
#include #include int main(int argc, char * argv[]){MYSQL * conn; conn = mysql_init(NULL);mysql_real_connect(conn, "localhsot", "username", "password", "testdb", 0, NULL, 0); mysql_query(conn, "CREATE TABLE writers(name VARCHAR(25))"); mysql_query(conn, "INSERT INTO writers VALUES('Leo Tolstoy')");mysql_query(conn, "INSERT INTO writers VALUES('Jack London')");mysql_query(conn, "INSERT INTO writers VALUES('Honore de Balzac')");mysql_query(conn, "INSERT INTO writers VALUES('Lion Feuchtwanger')");mysql_query(conn, "INSERT INTO writers VALUES('Emile Zole')"); mysql_close(conn); return 0;}
我们不使用任何新的 MySQL 函数。使用 mysql_query() 函数去创建表和插入数据。
mysql_real_connect(conn, "localhost", "username", "password", "testdb", 0, NULL, 0);
我们连接数据库 testdb,用户名 username 密码 password。
mysql_query(conn, "CREATE TABLE writers(name VARCHAR(25))");
这里我们创建一个名为 writers 的表,它有一个 varchar 类型的字段。
mysql_query(conn, "INSERT INTO writers VALUES('Leo Tolstoy')");
我们在 writers 表里插入一个记录。
mysql> show tables;+------------------+| Tables_in_testdb |+------------------+| writers |+------------------+1 row in set (0.00 sec)
显示数据库里的表。
mysql> select * from writers;+-------------------+| name |+-------------------+| Leo Tolstoy || Jack London || Honore de Balzac || Lion Feuchtwanger || Emile Zola |+-------------------+5 rows in set (0.00 sec)
枚举表中的记录。
Over!
- MySQL C 语言应用程序接口开发教程
- MySQL C 语言应用程序接口开发教程(1)
- c语言开发窗口应用程序
- MYSQL的C 语言接口
- MYSQL的C 语言接口
- mysql的C语言接口的使用
- mysql的C语言接口的使用
- MySQL的C语言接口大全
- MySQL的C语言接口大全
- MySQL的C语言API接口
- MySQL C语言接口-预处理语句
- MySQL的C语言接口大全
- MySQL的C语言API接口
- MySQL C语言接口-预处理语句
- 总结MySQL 的C语言接口使用
- MySQL C语言接口-预处理语句
- MySQL C语言接口-预处理语句
- mysql c语言接口。个人封装
- caffe 安装文档
- 基于docker的Jenkins可持续集成实践
- 精彩回顾 | 华为 HDG 成都站霸气上演 蓉城风云再起
- 2017年完美世界校招笔试题,从n层大楼往下扔m颗玻璃珠确定珠子破碎的临界楼层
- Tomcat fastjson 发生classnotfound 异常
- MySQL C 语言应用程序接口开发教程(1)
- leetcode 题解 1. Two Sum
- 让电脑不被锁屏的方法
- android studio使用的一些技巧
- 建立可视化决策平台,“数据化”首当其冲!
- 【转载】linux下配置ODBC连接MySql
- web前端-HTML字符实体-019
- 关于下拉刷新自定义控件
- iOS开发Debug之Xcode 8的Swift版本不兼容