Linux上C语言读取MySQL数据库内容

要想知道怎么通过C语言操作数据库,必须要了解这几个结构体的含义,这里只是简单说一下如果想要了解的更深入可以到网上搜一下

C API数据类型

1、MySQL结构代表一个数据库连接的句柄,包含有关服务器的连接状态的信息,几乎所有的函数均使用到他。要连接MySQL,必须建立MySQL实例,通过MySQL_init初始化方能开始连接。

2、MySQL_RES结果代表返回的查询结果(select,show等)。也将查询的返回的信息成为“结果集”。在c的API里对应的就是MySQL_RES了,从数据库读取数据,最后从MySQL_RES中读取数据。

3、MySQL_ROW这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。(如果字段值可能包含二进制数据,你不能将这些视为空终止串,因为这样的值可以在内部包含空字节) 行通过调用MySQL_fetch_row()获得。

这里归纳了C API可使用的函数,详见MySQL手册

函数

 

描述

 

mysql_affected_rows()

 

返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。

 

mysql_autocommit()

 

切换 autocommit模式,ON/OFF

 

mysql_change_user()

 

更改打开连接上的用户和数据库。

 

mysql_charset_name()

 

返回用于连接的默认字符集的名称。

 

mysql_close()

 

关闭服务器连接。

 

mysql_commit()

 

提交事务。

 

mysql_connect()

 

连接到MySQL服务器。该函数已不再被重视,使用mysql_real_connect()取代。

 

mysql_create_db()

 

创建数据库。该函数已不再被重视,使用SQL语句CREATE DATABASE取而代之。

 

mysql_data_seek()

 

在查询结果集中查找属性行编号。

 

mysql_debug()

 

用给定的字符串执行DBUG_PUSH。

 

mysql_drop_db()

 

撤销数据库。该函数已不再被重视,使用SQL语句DROP DATABASE取而代之。

 

mysql_dump_debug_info()

 

让服务器将调试信息写入日志。

 

mysql_eof()

 

确定是否读取了结果集的最后一行。该函数已不再被重视,可以使用mysql_errno()或mysql_error()取而代之。

 

mysql_errno()

 

返回上次调用的MySQL函数的错误编号。

 

mysql_error()

 

返回上次调用的MySQL函数的错误消息。

 

mysql_escape_string()

 

为了用在SQL语句中,对特殊字符进行转义处理。

 

mysql_fetch_field()

 

返回下一个表字段的类型。

 

mysql_fetch_field_direct()

 

给定字段编号,返回表字段的类型。

 

mysql_fetch_fields()

 

返回所有字段结构的数组。

 

mysql_fetch_lengths()

 

返回当前行中所有列的长度。

 

mysql_fetch_row()

 

从结果集中获取下一行

 

mysql_field_seek()

 

将列光标置于指定的列。

 

mysql_field_count()

 

返回上次执行语句的结果列的数目。

 

mysql_field_tell()

 

返回上次mysql_fetch_field()所使用字段光标的位置。

 

mysql_free_result()

 

释放结果集使用的内存。

 

mysql_get_client_info()

 

以字符串形式返回客户端版本信息。

 

mysql_get_client_version()

 

以整数形式返回客户端版本信息。

 

mysql_get_host_info()

 

返回描述连接的字符串。

 

mysql_get_server_version()

 

以整数形式返回服务器的版本号。

 

mysql_get_proto_info()

 

返回连接所使用的协议版本。

 

mysql_get_server_info()

 

返回服务器的版本号。

 

mysql_info()

 

返回关于最近所执行查询的信息。

 

mysql_init()

 

获取或初始化MYSQL结构。

 

mysql_insert_id()

 

返回上一个查询为AUTO_INCREMENT列生成的ID。

 

mysql_kill()

 

杀死给定的线程。

 

mysql_library_end()

 

最终确定MySQL C API库。

 

mysql_library_init()

 

初始化MySQL C API库。

 

mysql_list_dbs()

 

返回与简单正则表达式匹配的数据库名称。

 

mysql_list_fields()

 

返回与简单正则表达式匹配的字段名称。

 

mysql_list_processes()

 

返回当前服务器线程的列表。

 

mysql_list_tables()

 

返回与简单正则表达式匹配的表名。

 

mysql_more_results()

 

检查是否还存在其他结果。

 

mysql_next_result()

 

在多语句执行过程中返回/初始化下一个结果。

 

mysql_num_fields()

 

返回结果集中的列数。

 

mysql_num_rows()

 

返回结果集中的行数。

 

mysql_options()

 

为mysql_connect()设置连接选项。

 

mysql_ping()

 

检查与服务器的连接是否工作,如有必要重新连接。

 

mysql_query()

 

执行指定为“以Null终结的字符串”的SQL查询。

 

mysql_real_connect()

 

连接到MySQL服务器。

 

mysql_real_escape_string()

 

考虑到连接的当前字符集,为了在SQL语句中使用,对字符串中的特殊字符进行转义处理。

 

mysql_real_query()

 

执行指定为计数字符串的SQL查询。

 

mysql_refresh()

 

刷新或复位表和高速缓冲。

 

mysql_reload()

 

通知服务器再次加载授权表。

 

mysql_rollback()

 

回滚事务。

 

mysql_row_seek()

 

使用从mysql_row_tell()返回的值,查找结果集中的行偏移。

 

mysql_row_tell()

 

返回行光标位置。

 

mysql_select_db()

 

选择数据库。

 

mysql_server_end()

 

最终确定嵌入式服务器库。

 

mysql_server_init()

 

初始化嵌入式服务器库。

 

mysql_set_server_option()

 

为连接设置选项(如多语句)。

 

mysql_sqlstate()

 

返回关于上一个错误的SQLSTATE错误代码。

 

mysql_shutdown()

 

关闭数据库服务器。

 

mysql_stat()

 

以字符串形式返回服务器状态。

 

mysql_store_result()

 

检索完整的结果集至客户端。

 

mysql_thread_id()

 

返回当前线程ID。

 

mysql_thread_safe()

 

如果客户端已编译为线程安全的,返回1。

 

mysql_use_result()

 

初始化逐行的结果集检索。

 

mysql_warning_count()

 

返回上一个SQL语句的告警数。

 

下面看一下到底怎么通过C API操作数据库


下面的例子为读取数据库的表中的数据

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b99a87715890f1817f580cb2487c771f.html