欢迎来到天天文库
浏览记录
ID:34726412
大小:92.18 KB
页数:9页
时间:2019-03-10
《themysqlcapi编程实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TheMySQLCAPI编程实例在网上找了一些MYSQLCAPI编程的文章,看了后觉得还是写的不够充分,根据自己经验写了这篇《TheMySQLCAPI编程实例》,希望对需要调用到MYSQL的C的API的朋友有所帮助,附例中的环境为RedHat在这篇文章里,我们将学会怎么使用MySQL的CAPIs(ApplicationProgrammingInterfaces编程接口)。为了很好地了解这篇文章,您需要具备以下前提知识:C语言变量C语言函数C语言指针简介CAPIs包含在mysqlclient库文件当中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询
2、。有一些例子在MySQL原代码的clients目录里。MySQLC变量类型以下变量类型在MySQL的库当中定义。我们需要这些变量是为了使用MySQL的函数。这些变量有详细的解释,但是这些解释对于写代码来说并不重要。MYSQL以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接,这个在后面会讲到。typedefstructst_mysql{NETnet;/*Communicationparameters*/gptrconnector_fd;/*ConnectorFdforSSL*/char
3、*host,*user,*passwd,*unix_socket,*server_version,*host_info,*info,*db;unsignedintport,client_flag,server_capabilities;unsignedintprotocol_version;unsignedintfield_count;unsignedintserver_status;unsignedlongthread_id;/*Idforconnectioninserver*/my_ulonglongaffected_rows;my_ulonglongin
4、sert_id;/*idifinsertontablewithNEXTNR*/my_ulonglongextra_info;/*Usedbymysqlshow*/unsignedlongpacket_length;enummysql_statusstatus;MYSQL_FIELD*fields;MEM_ROOTfield_alloc;my_boolfree_me;/*Iffreeinmysql_close*/my_boolreconnect;/*setto1ifautomaticreconnect*/structst_mysql_optionsoptions
5、;charscramble_buff[9];structcharset_info_st*charset;unsignedintserver_language;}MYSQL;MYSQL_RES这个结构代表返回行的一个查询的(SELECT,SHOW,DESCRIBE,EXPLAIN)的结果。返回的数据称为“数据集”,用过数据库的朋友应该对数据库中查询后得到的结果集不会陌生,在C的API里对应的就是MYSQL_RES了,从数据库读取数据,最后就是从MYSQL_RES中读取数据。typedefstructst_mysql_res{my_ulonglongrow_cou
6、nt;unsignedintfield_count,current_field;MYSQL_FIELD*fields;MYSQL_DATA*data;MYSQL_ROWS*data_cursor;MEM_ROOTfield_alloc;MYSQL_ROWrow;/*Ifunbufferedread*/MYSQL_ROWcurrent_row;/*buffertocurrentrow*/unsignedlong*lengths;/*columnlengthsofcurrentrow*/MYSQL*handle;/*forunbufferedreads*/my_b
7、ooleof;/*Usedmymysql_fetch_row*/}MYSQL_RES;MYSQL_ROW这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。(如果字段值可能包含二进制数据,你不能将这些视为空终止串,因为这样的值可以在内部包含空字节)行通过调用mysql_fetch_row()获得。typedefchar**MYSQL_ROW;MYSQL_FIELD这个结构包含字段信息,例如字段名、类型和大小。其成员在下面更详细地描述。你可以通过重复调用mysql_fetch_field()对每一列获得MYSQL_FIEL
8、D结构。字段值不是这个结构的部分;他们
此文档下载收益归作者所有