关于用C操作mysql的一些函数介绍
来源:互联网 发布:编程中绝对值怎么表示 编辑:程序博客网 时间:2024/06/05 13:07
1.连接数据库。
从C语言连接MySQL数据库包含两个步骤:
a)初始化连接句柄结构;
b)实际创建连接。
关于a):
首先使用mysql_init初始化连接句柄: MYSQL * mysql_init (MYSQL *);
通常传递一个空指针给mysql_init这个函数,它会返回一个指向新分配的连接句柄结构的指针。如果传递一个已有的结构,他将被重新初始化。如果出错,返回NULL。
关于b):
初始化成功后,则使用mysql_real_connect来创建一个实际的连接:
MYSQL * mysql_real_connect(MYSQL * connection, const char * server_host, const char * sql_user_name, const char * sql_password, const char *db_name, unsigned int port_number, const char * unix_socket_name, unsigned int flags );
connection必须是已经初始化的连接句柄结构,server_host可以是主机名,也可以是IP地址,如果仅仅连接到本机,可以使用 localhost来优化连接类型。
port_number和unix_socket_name应该分别为0和NULL,除非改变了MYSQL安装的默认设置。
如果无法连接,返回NULL。
------------------------------------------
2.关闭数据库。
完成操作后,在程序正常退出前,应该使用mysql_close关闭这个连接句柄。
void mysql_close(MYSQL * connection);
------------------------------------------
3.操作数据库。
进入数据库中之后,就可以开始对数据库进行读写操作了。
数据库的主要操作包括select, insert, update, delete四种。
a)sql语句的嵌入:
执行SQL语句的主要API函数是:
int mysql_query(MYSQL *connection, const char * query)
接受已经建立的连接结构指针和文本字符串形式的有效SQL语句(句末不用分号)。
成功返回0。
还有一个比较重要的函数,mysql_affected_rows(),他返回无符号类型,当使用printf时,推荐使用%lu格式将其转换为无符号长整型。
此函数返回受之前执行的update,delete,insert等查询影响的行数。
b)select语句的使用:
select语句是SQL语句中使用最频繁的操作。
一个完整的提取数据过程应该包含以下四个步骤:执行查询,提取数据,处理数据,清理。
**使用mysql_query来发送SQL语句,
**使用mysql_store_result或者mysql_use_result来提取数据。
**然后使用 mysql_fetch_row调用来处理数据,
**最后,使用mysql_free_result来释放查询占用的内存资源。
mysql_use_result和mysql_store_result都是返回一个指向结果集结构(result set structure)的指针,如果失败则返回NULL。
区别在于store将查询到的数据库中的结果直接放在这个结果集中,而use则不直接将最终数据库的数据结果放在这个结果集中。
store其实就是把数据直接读到本地内存中,因此它比较适合数据量较小的查询。
use则类似于一种流的操作,并不是一次就返回所有的结果。
------------------------------------------(未完待续)
0 0
- 关于用C操作mysql的一些函数介绍
- 关于c语言的一些文件操作函数
- 关于MySQL杂七杂八的一些操作
- mysql关于表格的一些基本操作
- 关于CString的一些操作函数
- C中的一些关于字符串的操作
- C 关于链表的一些操作
- C API操作mysql数据库常用的函数及介绍(全)
- MYsql关于时间函数的操作【转】
- Mysql各种关于函数的操作语句
- 关于MySQL常用的一些函数以及一些计算
- mysql c操作函数
- 比较常用的一些数组操作函数 mysql函数
- 关于C/C++编辑器与编译器的一些介绍
- PHP关于MySQL数据库的基本操作的介绍
- mysql关于主键,unique以及增删的一些操作
- 关于mysql的一些操作指令基础1-1
- mysql的一些操作
- rsync命令
- mysql进程意外停止的解决方案
- Linux命令之uniq命令使用详解
- C#学习之多线程开发技术(三)
- SQL与python相结合的相关数据处理分析
- 关于用C操作mysql的一些函数介绍
- Pain类的常用属性设置方法
- Linux命令之wc命令使用详解
- Foj 2203 Problem 2203 单纵大法好 stl应用
- 麻省理工公开课:线性代数
- 前行的路
- 解决UIGestureRecognizer手势与视图上其他滑动视图的冲突
- ksh 格式化输出
- 面向对象的一些概念及举例说明