用C语言操作MySQL数据库 用C语言操作MySQL数据库

----------------------------------------------

以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接.

typedef struct st_mysql {  NET           net;            /* Communication parameters */  gptr          connector_fd;   /* ConnectorFd for SSL */  char          *host,*user,*passwd,*unix_socket,                 *server_version,*host_info,*info,*db;  unsigned int port,client_flag,server_capabilities;  unsigned int protocol_version;  unsigned int field_count;  unsigned int server_status;  unsigned long thread_id;      /* Id for connection in server */  my_ulonglong affected_rows;  my_ulonglong insert_id;       /* id if insert on table with NEXTNR */  my_ulonglong extra_info;              /* Used by mysqlshow */  unsigned long packet_length;  enum mysql_status status;  MYSQL_FIELD   *fields;  MEM_ROOT      field_alloc;  my_bool       free_me;        /* If free in mysql_close */  my_bool       reconnect;      /* set to 1 if automatic reconnect */  struct st_mysql_options options;  char          scramble_buff[9];  struct charset_info_st *charset;  unsigned int server_language; } MYSQL;
这个结构代表返回行的一个查询的(SELECT, SHOW, DESCRIBE, EXPLAIN)的结果。返回的数据称为“数据集”,用过数据库的朋友应该对数据库中查询后得到的结果集不会陌生,在C的API里对应的就是MYSQL_RES了,从数据库读取数据,最后就是从MYSQL_RES中读取数据。

typedef struct st_mysql_res {  my_ulonglong row_count;  unsigned int field_count, current_field;  MYSQL_FIELD   *fields;  MYSQL_DATA    *data;  MYSQL_ROWS    *data_cursor;  MEM_ROOT      field_alloc;  MYSQL_ROW     row;            /* If unbuffered read */  MYSQL_ROW     current_row;    /* buffer to current row */  unsigned long *lengths;       /* column lengths of current row */  MYSQL         *handle;        /* for unbuffered reads */  my_bool       eof;            /* Used my mysql_fetch_row */ } MYSQL_RES;

----------------------------------------------

再看函数:

C语言操作mysql数据 常用函数

所需头文件: #include <mysql/mysql.h>
功能:  获得或初始化一个MYSQL结构
函数原型: MYSQL *mysql_init(MYSQL *mysql)
函数返回值: 一个被始化的MYSQL*句柄
备注:  在内存不足的情况下,返回NULL

所需头文件: #include <mysql/mysql.h>
函数功能: 关闭一个服务器连接,并释放与连接相关的内存
函数原型: void mysql_close(MYSQL *mysql);
函数传入值: MYSQL:类型的指针
函数返回值: 无

所需头文件: #include <mysql/mysql.h>
函数功能: 连接一个MySQL服务器
函数原型: MYSQL * mysql_connect(MYSQL *mysql,const char *host,const char *user,const char *passwd);
函数传入值: mysql表示一个现存mysql结构的地址
  host表示MYSQL服务器的主机名或IP
  user表示登录的用户名
  passwd表示登录的密码
函数返回值: 如果连接成功,一个MYSQL *连接句柄:如果连接失败,NULL
备注:  该函数不推荐,使用mysql_real_connect()代替

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

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