MySQL C API总结

C API代码是与MySQL一起提供的,它包含在mysqlclient库中,并允许C程序访问数据库。

环境搭建

首先是环境搭建,已经搭建好的看官跳过就好。
一、搭建windows10系统下32位Codeblocks 16+64位MySQL server 5.7环境:
安装codeblocks和MySQL Server,然后由于IDE和MySQL位数不同,需要安装32位的Connector/C,然后在codeblocks中新建项目,在project-build options下,分别配置debug和release选项下的linker setting 和search path里配置mysql链接库和头文件搜索路径,分别为:C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib和C:\Program Files\MySQL\MySQL Connector C 6.1\include。然后在项目根目录中添加dll动态链接库,详细安装及配置过程见:http://blog.csdn.net/beiwei_31/article/details/76665035
二、在windows10 64位系统中安装Visual Studio 2015(32位)和MySQL 5.7(64位),然后安装Connector C 6.1(32位),在VS项目-项目属性-C/C++-附件包含目录中添加Connector C安装目录下的include文件夹路径(mysql.h的路径),在链接器-输入-附加依赖库中添加Connector C安装目录下的lib中的libmysql.lib文件路径。然后将lib文件夹下的libmysql.dll动态链接库文件复制到VS项目根目录~\Visual Studio 2015\Projects\Project_name\Release中。
注:VS的软件位数一定要和Connector/C的位数保持一致,否则无法找到依赖库。详细安装及配置过程见:http://blog.csdn.net/beiwei_31/article/details/76665035

关于MySQL C API的介绍在官网文档已经有了:https://dev.mysql.com/doc/connector-c/en/
目前在网上只看到比较好的MySQL5.1中文参考手册:http://www.mysqlab.net/docs/view/refman-5.1-zh/chapter/index.html

C API常用数据类型

最近自学了MySQL C API的一些数据类型和函数,放在这里方便以后查看。

  • MYSQL

    该结构代表一个数据库连接的句柄,几乎所有的MYSQL函数均使用它。不应尝试拷贝MYSQL结构。

  • MYSQL_RES

    该结构代表返回行的查询结果(SELECT,SHOW, DESCRIBE,EXPLAIN),对应于查询所获得的表。

  • MYSQL_ROW

    该结构为1行数据的“类型安全”表示,即表示记录集里的一条数据。按照字段顺序存放在数组中。这样一条记录的获取是通过mysql_fetch_row()获得的。

  • MYSQL_FIELD

    该结构包含关于字段的信息,如字段名、类型、大小。通过重复调用mysql_fetch_field(),可为每个字段获得MYSQL_FIELD结构。字段对应的值不会显示在MYSQL_FIELD中,而是在MYSQL_ROW中。

  • MYSQL_FIELD_OFFSET

    该结构表示MYSQL字段列表偏移量的“类型安全”表示。由mysql_field_seek()使用。偏移量是行内字段的编号,从0开始。

C API函数

  • 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语句的告警数。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值